Merge branch 'waf-build' into new-dev
diff --git a/.gitignore b/.gitignore
index 35c2f84..85f6715 100644
--- a/.gitignore
+++ b/.gitignore
@@ -83,3 +83,9 @@
 
 # pkg-config file
 libndn-cpp-dev.pc
+
+# waf build system
+.waf-1*
+.lock*
+build/
+.waf-tools/*.pyc
diff --git a/.travis.yml b/.travis.yml
index e9fd66e..b187ec4 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -8,16 +8,14 @@
 before_install:
   - travis_retry sudo add-apt-repository -y ppa:named-data/ppa
   - travis_retry sudo apt-get update -qq
-  - travis_retry sudo apt-get install -qq autotools-dev
   - travis_retry sudo apt-get install -qq ndnx-dev
   - travis_retry sudo apt-get install -qq libboost-all-dev
   - travis_retry sudo apt-get install -qq libcrypto++-dev
   - travis_retry sudo apt-get install -qq libsqlite3-dev
 script:
-  - autoreconf -f --install
-  - ./configure --with-tests
-  - make
-  - sudo make install
+  - ./waf configure --with-tests
+  - ./waf -j1
+  - sudo ./waf install
   - sudo ldconfig
   - #
   - # Some tests now require daemon to run (and daemon needs the library to be compiled)
@@ -32,4 +30,4 @@
   - ndnd-tlv-start
   - sleep 1
   - #
-  - ./tests_boost/unit-tests -l all
+  - ./build/tests/unit-tests -l all
diff --git a/.waf-tools/boost.py b/.waf-tools/boost.py
new file mode 100644
index 0000000..c714b5b
--- /dev/null
+++ b/.waf-tools/boost.py
@@ -0,0 +1,373 @@
+#!/usr/bin/env python
+# encoding: utf-8
+#
+# partially based on boost.py written by Gernot Vormayr
+# written by Ruediger Sonderfeld <ruediger@c-plusplus.de>, 2008
+# modified by Bjoern Michaelsen, 2008
+# modified by Luca Fossati, 2008
+# rewritten for waf 1.5.1, Thomas Nagy, 2008
+# rewritten for waf 1.6.2, Sylvain Rouquette, 2011
+
+'''
+
+This is an extra tool, not bundled with the default waf binary.
+To add the boost tool to the waf file:
+$ ./waf-light --tools=compat15,boost
+	or, if you have waf >= 1.6.2
+$ ./waf update --files=boost
+
+When using this tool, the wscript will look like:
+
+	def options(opt):
+		opt.load('compiler_cxx boost')
+
+	def configure(conf):
+		conf.load('compiler_cxx boost')
+		conf.check_boost(lib='system filesystem')
+
+	def build(bld):
+		bld(source='main.cpp', target='app', use='BOOST')
+
+Options are generated, in order to specify the location of boost includes/libraries.
+The `check_boost` configuration function allows to specify the used boost libraries.
+It can also provide default arguments to the --boost-static and --boost-mt command-line arguments.
+Everything will be packaged together in a BOOST component that you can use.
+
+When using MSVC, a lot of compilation flags need to match your BOOST build configuration:
+ - you may have to add /EHsc to your CXXFLAGS or define boost::throw_exception if BOOST_NO_EXCEPTIONS is defined.
+   Errors: C4530
+ - boost libraries will try to be smart and use the (pretty but often not useful) auto-linking feature of MSVC
+   So before calling `conf.check_boost` you might want to disabling by adding:
+   	conf.env.DEFINES_BOOST += ['BOOST_ALL_NO_LIB']
+   Errors: 
+ - boost might also be compiled with /MT, which links the runtime statically.
+   If you have problems with redefined symbols, 
+		self.env['DEFINES_%s' % var] += ['BOOST_ALL_NO_LIB']
+		self.env['CXXFLAGS_%s' % var] += ['/MD', '/EHsc']
+Passing `--boost-linkage_autodetect` might help ensuring having a correct linkage in some basic cases.
+
+'''
+
+import sys
+import re
+from waflib import Utils, Logs, Errors
+from waflib.Configure import conf
+
+BOOST_LIBS = ['/usr/lib', '/usr/local/lib', '/opt/local/lib', '/sw/lib', '/lib', '/usr/lib/x86_64-linux-gnu', '/usr/lib/i386-linux-gnu', '/usr/local/ndn/lib']
+BOOST_INCLUDES = ['/usr/include', '/usr/local/include', '/opt/local/include', '/sw/include', '/usr/local/ndn/include']
+BOOST_VERSION_FILE = 'boost/version.hpp'
+BOOST_VERSION_CODE = '''
+#include <iostream>
+#include <boost/version.hpp>
+int main() { std::cout << BOOST_LIB_VERSION << std::endl; }
+'''
+
+# toolsets from {boost_dir}/tools/build/v2/tools/common.jam
+PLATFORM = Utils.unversioned_sys_platform()
+detect_intel = lambda env: (PLATFORM == 'win32') and 'iw' or 'il'
+detect_clang = lambda env: (PLATFORM == 'darwin') and 'clang-darwin' or 'clang'
+detect_mingw = lambda env: (re.search('MinGW', env.CXX[0])) and 'mgw' or 'gcc'
+BOOST_TOOLSETS = {
+	'borland':  'bcb',
+	'clang':	detect_clang,
+	'como':	 'como',
+	'cw':	   'cw',
+	'darwin':   'xgcc',
+	'edg':	  'edg',
+	'g++':	  detect_mingw,
+	'gcc':	  detect_mingw,
+	'icpc':	 detect_intel,
+	'intel':	detect_intel,
+	'kcc':	  'kcc',
+	'kylix':	'bck',
+	'mipspro':  'mp',
+	'mingw':	'mgw',
+	'msvc':	 'vc',
+	'qcc':	  'qcc',
+	'sun':	  'sw',
+	'sunc++':   'sw',
+	'tru64cxx': 'tru',
+	'vacpp':	'xlc'
+}
+
+
+def options(opt):
+        opt = opt.add_option_group('Boost Options')
+    
+	opt.add_option('--boost-includes', type='string',
+				   default='', dest='boost_includes',
+				   help='''path to the boost includes root (~boost root)
+				   e.g. /path/to/boost_1_47_0''')
+	opt.add_option('--boost-libs', type='string',
+				   default='', dest='boost_libs',
+				   help='''path to the directory where the boost libs are
+				   e.g. /path/to/boost_1_47_0/stage/lib''')
+	opt.add_option('--boost-static', action='store_true',
+				   default=False, dest='boost_static',
+				   help='link with static boost libraries (.lib/.a)')
+	opt.add_option('--boost-mt', action='store_true',
+				   default=False, dest='boost_mt',
+				   help='select multi-threaded libraries')
+	opt.add_option('--boost-abi', type='string', default='', dest='boost_abi',
+				   help='''select libraries with tags (dgsyp, d for debug),
+				   see doc Boost, Getting Started, chapter 6.1''')
+	opt.add_option('--boost-linkage_autodetect', action="store_true", dest='boost_linkage_autodetect',
+				   help="auto-detect boost linkage options (don't get used to it / might break other stuff)")
+	opt.add_option('--boost-toolset', type='string',
+				   default='', dest='boost_toolset',
+				   help='force a toolset e.g. msvc, vc90, \
+						gcc, mingw, mgw45 (default: auto)')
+	py_version = '%d%d' % (sys.version_info[0], sys.version_info[1])
+	opt.add_option('--boost-python', type='string',
+				   default=py_version, dest='boost_python',
+				   help='select the lib python with this version \
+						(default: %s)' % py_version)
+
+
+@conf
+def __boost_get_version_file(self, d):
+	dnode = self.root.find_dir(d)
+	if dnode:
+		return dnode.find_node(BOOST_VERSION_FILE)
+	return None
+
+@conf
+def boost_get_version(self, d):
+	"""silently retrieve the boost version number"""
+	node = self.__boost_get_version_file(d)
+	if node:
+		try:
+			txt = node.read()
+		except (OSError, IOError):
+			Logs.error("Could not read the file %r" % node.abspath())
+		else:
+			re_but = re.compile('^#define\\s+BOOST_LIB_VERSION\\s+"(.*)"', re.M)
+			m = re_but.search(txt)
+			if m:
+				return m.group(1)
+	return self.check_cxx(fragment=BOOST_VERSION_CODE, includes=[d], execute=True, define_ret=True)
+
+@conf
+def boost_get_includes(self, *k, **kw):
+	includes = k and k[0] or kw.get('includes', None)
+	if includes and self.__boost_get_version_file(includes):
+		return includes
+	for d in Utils.to_list(self.environ.get('INCLUDE', '')) + BOOST_INCLUDES:
+		if self.__boost_get_version_file(d):
+			return d
+	if includes:
+		self.end_msg('headers not found in %s' % includes)
+		self.fatal('The configuration failed')
+	else:
+		self.end_msg('headers not found, please provide a --boost-includes argument (see help)')
+		self.fatal('The configuration failed')
+
+
+@conf
+def boost_get_toolset(self, cc):
+	toolset = cc
+	if not cc:
+		build_platform = Utils.unversioned_sys_platform()
+		if build_platform in BOOST_TOOLSETS:
+			cc = build_platform
+		else:
+			cc = self.env.CXX_NAME
+	if cc in BOOST_TOOLSETS:
+		toolset = BOOST_TOOLSETS[cc]
+	return isinstance(toolset, str) and toolset or toolset(self.env)
+
+
+@conf
+def __boost_get_libs_path(self, *k, **kw):
+	''' return the lib path and all the files in it '''
+	if 'files' in kw:
+		return self.root.find_dir('.'), Utils.to_list(kw['files'])
+	libs = k and k[0] or kw.get('libs', None)
+	if libs:
+		path = self.root.find_dir(libs)
+		files = path.ant_glob('*boost_*')
+	if not libs or not files:
+		for d in Utils.to_list(self.environ.get('LIB', [])) + BOOST_LIBS:
+			path = self.root.find_dir(d)
+			if path:
+				files = path.ant_glob('*boost_*')
+				if files:
+					break
+			path = self.root.find_dir(d + '64')
+			if path:
+				files = path.ant_glob('*boost_*')
+				if files:
+					break
+	if not path:
+		if libs:
+			self.end_msg('libs not found in %s' % libs)
+			self.fatal('The configuration failed')
+		else:
+			self.end_msg('libs not found, please provide a --boost-libs argument (see help)')
+			self.fatal('The configuration failed')
+
+	self.to_log('Found the boost path in %r with the libraries:' % path)
+	for x in files:
+		self.to_log('    %r' % x)
+	return path, files
+
+@conf
+def boost_get_libs(self, *k, **kw):
+	'''
+	return the lib path and the required libs
+	according to the parameters
+	'''
+	path, files = self.__boost_get_libs_path(**kw)
+	t = []
+	if kw.get('mt', False):
+		t.append('mt')
+	if kw.get('abi', None):
+		t.append(kw['abi'])
+	tags = t and '(-%s)+' % '-'.join(t) or ''
+	toolset = self.boost_get_toolset(kw.get('toolset', ''))
+	toolset_pat = '(-%s[0-9]{0,3})+' % toolset
+	version = '(-%s)+' % self.env.BOOST_VERSION
+
+	def find_lib(re_lib, files):
+		for file in files:
+			if re_lib.search(file.name):
+				self.to_log('Found boost lib %s' % file)
+				return file
+		return None
+
+	def format_lib_name(name):
+		if name.startswith('lib') and self.env.CC_NAME != 'msvc':
+			name = name[3:]
+		return name[:name.rfind('.')]
+
+	libs = []
+	for lib in Utils.to_list(k and k[0] or kw.get('lib', None)):
+		py = (lib == 'python') and '(-py%s)+' % kw['python'] or ''
+		# Trying libraries, from most strict match to least one
+		for pattern in ['boost_%s%s%s%s%s' % (lib, toolset_pat, tags, py, version),
+						'boost_%s%s%s%s' % (lib, tags, py, version),
+						'boost_%s%s%s' % (lib, tags, version),
+						# Give up trying to find the right version
+						'boost_%s%s%s%s' % (lib, toolset_pat, tags, py),
+						'boost_%s%s%s' % (lib, tags, py),
+						'boost_%s%s' % (lib, tags)]:
+			self.to_log('Trying pattern %s' % pattern)
+			file = find_lib(re.compile(pattern), files)
+			if file:
+				libs.append(format_lib_name(file.name))
+				break
+		else:
+			self.end_msg('lib %s not found in %s' % (lib, path.abspath()))
+			self.fatal('The configuration failed')
+
+	return path.abspath(), libs
+
+
+@conf
+def check_boost(self, *k, **kw):
+	"""
+	Initialize boost libraries to be used.
+
+	Keywords: you can pass the same parameters as with the command line (without "--boost-").
+	Note that the command line has the priority, and should preferably be used.
+	"""
+	if not self.env['CXX']:
+		self.fatal('load a c++ compiler first, conf.load("compiler_cxx")')
+
+	params = {'lib': k and k[0] or kw.get('lib', None)}
+	for key, value in self.options.__dict__.items():
+		if not key.startswith('boost_'):
+			continue
+		key = key[len('boost_'):]
+		params[key] = value and value or kw.get(key, '')
+
+	var = kw.get('uselib_store', 'BOOST')
+
+	self.start_msg('Checking boost includes')
+	self.env['INCLUDES_%s' % var] = inc = self.boost_get_includes(**params)
+	self.env.BOOST_VERSION = self.boost_get_version(inc)
+	self.end_msg(self.env.BOOST_VERSION)
+	if Logs.verbose:
+		Logs.pprint('CYAN', '	path : %s' % self.env['INCLUDES_%s' % var])
+
+	if not params['lib']:
+		return
+	self.start_msg('Checking boost libs')
+	suffix = params.get('static', None) and 'ST' or ''
+	path, libs = self.boost_get_libs(**params)
+	self.env['%sLIBPATH_%s' % (suffix, var)] = [path]
+	self.env['%sLIB_%s' % (suffix, var)] = libs
+	self.end_msg('ok')
+	if Logs.verbose:
+		Logs.pprint('CYAN', '	path : %s' % path)
+		Logs.pprint('CYAN', '	libs : %s' % libs)
+
+
+	def try_link():
+		if 'system' in params['lib']:
+			self.check_cxx(
+			 fragment="\n".join([
+			  '#include <boost/system/error_code.hpp>',
+			  'int main() { boost::system::error_code c; }',
+			 ]),
+			 use=var,
+			 execute=False,
+			)
+		if 'thread' in params['lib']:
+			self.check_cxx(
+			 fragment="\n".join([
+			  '#include <boost/thread.hpp>',
+			  'int main() { boost::thread t; }',
+			 ]),
+			 use=var,
+			 execute=False,
+			)
+
+	if params.get('linkage_autodetect', False):
+		self.start_msg("Attempting to detect boost linkage flags")
+		toolset = self.boost_get_toolset(kw.get('toolset', ''))
+		if toolset in ['vc']:
+			# disable auto-linking feature, causing error LNK1181
+			# because the code wants to be linked against
+			self.env['DEFINES_%s' % var] += ['BOOST_ALL_NO_LIB']
+
+			# if no dlls are present, we guess the .lib files are not stubs
+			has_dlls = False
+			for x in Utils.listdir(path):
+				if x.endswith(self.env.cxxshlib_PATTERN % ''):
+					has_dlls = True
+					break
+			if not has_dlls:
+				self.env['STLIBPATH_%s' % var] = [path]
+				self.env['STLIB_%s' % var] = libs
+				del self.env['LIB_%s' % var]
+				del self.env['LIBPATH_%s' % var]
+
+			# we attempt to play with some known-to-work CXXFLAGS combinations
+			for cxxflags in (['/MD', '/EHsc'], []):
+				self.env.stash()
+				self.env["CXXFLAGS_%s" % var] += cxxflags
+				try:
+					try_link()
+					self.end_msg("ok: winning cxxflags combination: %s" % (self.env["CXXFLAGS_%s" % var]))
+					e = None
+					break
+				except Errors.ConfigurationError as exc:
+					self.env.revert()
+					e = exc
+
+			if e is not None:
+				self.end_msg("Could not auto-detect boost linking flags combination, you may report it to boost.py author", ex=e)
+				self.fatal('The configuration failed')
+		else:
+			self.end_msg("Boost linkage flags auto-detection not implemented (needed ?) for this toolchain")
+			self.fatal('The configuration failed')
+	else:
+		self.start_msg('Checking for boost linkage')
+		try:
+			try_link()
+		except Errors.ConfigurationError as e:
+			self.end_msg("Could not link against boost libraries using supplied options")
+			self.fatal('The configuration failed')
+		self.end_msg('ok')
+
diff --git a/.waf-tools/cryptopp.py b/.waf-tools/cryptopp.py
new file mode 100644
index 0000000..a05326b
--- /dev/null
+++ b/.waf-tools/cryptopp.py
@@ -0,0 +1,77 @@
+#! /usr/bin/env python
+# encoding: utf-8
+
+'''
+
+When using this tool, the wscript will look like:
+
+	def options(opt):
+	        opt.tool_options('cryptopp', tooldir=["waf-tools"])
+
+	def configure(conf):
+		conf.load('compiler_cxx cryptopp')
+
+	def build(bld):
+		bld(source='main.cpp', target='app', use='CRYPTOPP')
+
+Options are generated, in order to specify the location of cryptopp includes/libraries.
+
+
+'''
+import sys
+import re
+from waflib import Utils,Logs,Errors
+from waflib.Configure import conf
+CRYPTOPP_DIR=['/usr','/usr/local','/opt/local','/sw']
+CRYPTOPP_VERSION_FILE='config.h'
+CRYPTOPP_VERSION_CODE='''
+#include <iostream>
+#include <cryptopp/config.h>
+int main() { std::cout << CRYPTOPP_VERSION; }
+'''
+
+def options(opt):
+	opt.add_option('--cryptopp',type='string',default='',dest='cryptopp_dir',help='''path to where cryptopp is installed, e.g. /opt/local''')
+@conf
+def __cryptopp_get_version_file(self,dir):
+	try:
+		return self.root.find_dir(dir).find_node('%s/%s' % ('include/cryptopp', CRYPTOPP_VERSION_FILE))
+	except:
+		return None
+@conf
+def cryptopp_get_version(self,dir):
+	val=self.check_cxx(fragment=CRYPTOPP_VERSION_CODE,includes=['%s/%s' % (dir, 'include')], execute=True, define_ret = True, mandatory=True)
+	return val
+@conf
+def cryptopp_get_root(self,*k,**kw):
+	root=k and k[0]or kw.get('path',None)
+	# Logs.pprint ('RED', '   %s' %root)
+	if root and self.__cryptopp_get_version_file(root):
+		return root
+	for dir in CRYPTOPP_DIR:
+		if self.__cryptopp_get_version_file(dir):
+			return dir
+	if root:
+		self.fatal('CryptoPP not found in %s'%root)
+	else:
+		self.fatal('CryptoPP not found, please provide a --cryptopp argument (see help)')
+@conf
+def check_cryptopp(self,*k,**kw):
+	if not self.env['CXX']:
+		self.fatal('load a c++ compiler first, conf.load("compiler_cxx")')
+
+	var=kw.get('uselib_store','CRYPTOPP')
+	self.start_msg('Checking Crypto++ lib')
+	root = self.cryptopp_get_root(*k,**kw)
+	self.env.CRYPTOPP_VERSION=self.cryptopp_get_version(root)
+
+	self.env['INCLUDES_%s'%var]= '%s/%s' % (root, "include")
+	self.env['LIB_%s'%var] = "cryptopp"
+	self.env['LIBPATH_%s'%var] = '%s/%s' % (root, "lib")
+
+	self.end_msg(self.env.CRYPTOPP_VERSION)
+	if Logs.verbose:
+		Logs.pprint('CYAN','	CRYPTOPP include : %s'%self.env['INCLUDES_%s'%var])
+		Logs.pprint('CYAN','	CRYPTOPP lib     : %s'%self.env['LIB_%s'%var])
+		Logs.pprint('CYAN','	CRYPTOPP libpath : %s'%self.env['LIBPATH_%s'%var])
+
diff --git a/.waf-tools/doxygen.py b/.waf-tools/doxygen.py
new file mode 100644
index 0000000..07014ee
--- /dev/null
+++ b/.waf-tools/doxygen.py
@@ -0,0 +1,184 @@
+#! /usr/bin/env python
+# encoding: UTF-8
+# Thomas Nagy 2008-2010 (ita)
+
+"""
+
+Doxygen support
+
+Variables passed to bld():
+* doxyfile -- the Doxyfile to use
+
+ported from waf 1.5 (incomplete)
+"""
+
+from fnmatch import fnmatchcase
+import os, os.path, re, stat
+from waflib import Task, Utils, Node, Logs
+from waflib.TaskGen import feature
+
+DOXY_STR = '${DOXYGEN} - '
+DOXY_FMTS = 'html latex man rft xml'.split()
+DOXY_FILE_PATTERNS = '*.' + ' *.'.join('''
+c cc cxx cpp c++ java ii ixx ipp i++ inl h hh hxx hpp h++ idl odl cs php php3
+inc m mm py f90c cc cxx cpp c++ java ii ixx ipp i++ inl h hh hxx
+'''.split())
+
+re_rl = re.compile('\\\\\r*\n', re.MULTILINE)
+re_nl = re.compile('\r*\n', re.M)
+def parse_doxy(txt):
+	tbl = {}
+	txt   = re_rl.sub('', txt)
+	lines = re_nl.split(txt)
+	for x in lines:
+		x = x.strip()
+		if not x or x.startswith('#') or x.find('=') < 0:
+			continue
+		if x.find('+=') >= 0:
+			tmp = x.split('+=')
+			key = tmp[0].strip()
+			if key in tbl:
+				tbl[key] += ' ' + '+='.join(tmp[1:]).strip()
+			else:
+				tbl[key] = '+='.join(tmp[1:]).strip()
+		else:
+			tmp = x.split('=')
+			tbl[tmp[0].strip()] = '='.join(tmp[1:]).strip()
+	return tbl
+
+class doxygen(Task.Task):
+	vars  = ['DOXYGEN', 'DOXYFLAGS']
+	color = 'BLUE'
+
+	def runnable_status(self):
+		'''
+		self.pars are populated in runnable_status - because this function is being
+		run *before* both self.pars "consumers" - scan() and run()
+
+		set output_dir (node) for the output
+		'''
+
+		for x in self.run_after:
+			if not x.hasrun:
+				return Task.ASK_LATER
+
+		if not getattr(self, 'pars', None):
+			txt = self.inputs[0].read()
+			self.pars = parse_doxy(txt)
+			if not self.pars.get('OUTPUT_DIRECTORY'):
+				self.pars['OUTPUT_DIRECTORY'] = self.inputs[0].parent.get_bld().abspath()
+
+			self.doxy_inputs = getattr(self, 'doxy_inputs', [])
+			if not self.pars.get('INPUT'):
+				self.doxy_inputs.append(self.inputs[0].parent)
+			else:
+				for i in self.pars.get('INPUT').split():
+					if os.path.isabs(i):
+						node = self.generator.bld.root.find_node(i)
+					else:
+						node = self.generator.path.find_node(i)
+					if not node:
+						self.generator.bld.fatal('Could not find the doxygen input %r' % i)
+					self.doxy_inputs.append(node)
+
+		if not getattr(self, 'output_dir', None):
+			bld = self.generator.bld
+			# First try to find an absolute path, then find or declare a relative path
+			self.output_dir = bld.root.find_dir(self.pars['OUTPUT_DIRECTORY'])
+			if not self.output_dir:
+				self.output_dir = bld.path.find_or_declare(self.pars['OUTPUT_DIRECTORY'])
+
+		self.signature()
+		return Task.Task.runnable_status(self)
+
+	def scan(self):
+		if self.pars.get('RECURSIVE') == 'YES':
+			Logs.warn("Doxygen RECURSIVE dependencies are not supported")
+
+		exclude_patterns = self.pars.get('EXCLUDE_PATTERNS', '').split()
+		file_patterns = self.pars.get('FILE_PATTERNS', '').split()
+		if not file_patterns:
+			file_patterns = DOXY_FILE_PATTERNS
+
+		nodes = []
+		names = []
+		for node in self.doxy_inputs:
+			if os.path.isdir(node.abspath()):
+				for m in node.ant_glob(file_patterns):
+					nodes.append(m)
+			else:
+				nodes.append(node)
+		return (nodes, names)
+
+	def run(self):
+		dct = self.pars.copy()
+		# TODO will break if paths have spaces
+		dct['INPUT'] = ' '.join([x.abspath() for x in self.doxy_inputs])
+		code = '\n'.join(['%s = %s' % (x, dct[x]) for x in self.pars])
+		code = code.encode() # for python 3
+		#fmt = DOXY_STR % (self.inputs[0].parent.abspath())
+		cmd = Utils.subst_vars(DOXY_STR, self.env)
+		env = self.env.env or None
+		proc = Utils.subprocess.Popen(cmd, shell=True, stdin=Utils.subprocess.PIPE, env=env, cwd=self.generator.bld.path.get_bld().abspath())
+		proc.communicate(code)
+		return proc.returncode
+
+	def post_run(self):
+		nodes = self.output_dir.ant_glob('**/*', quiet=True)
+		for x in nodes:
+			x.sig = Utils.h_file(x.abspath())
+		self.outputs += nodes
+		return Task.Task.post_run(self)
+
+class tar(Task.Task):
+	"quick tar creation"
+	run_str = '${TAR} ${TAROPTS} ${TGT} ${SRC}'
+	color   = 'RED'
+	after   = ['doxygen']
+	def runnable_status(self):
+		for x in getattr(self, 'input_tasks', []):
+			if not x.hasrun:
+				return Task.ASK_LATER
+
+		if not getattr(self, 'tar_done_adding', None):
+			# execute this only once
+			self.tar_done_adding = True
+			for x in getattr(self, 'input_tasks', []):
+				self.set_inputs(x.outputs)
+			if not self.inputs:
+				return Task.SKIP_ME
+		return Task.Task.runnable_status(self)
+
+	def __str__(self):
+		tgt_str = ' '.join([a.nice_path(self.env) for a in self.outputs])
+		return '%s: %s\n' % (self.__class__.__name__, tgt_str)
+
+@feature('doxygen')
+def process_doxy(self):
+	if not getattr(self, 'doxyfile', None):
+		self.generator.bld.fatal('no doxyfile??')
+
+	node = self.doxyfile
+	if not isinstance(node, Node.Node):
+		node = self.path.find_resource(node)
+	if not node:
+		raise ValueError('doxygen file not found')
+
+	# the task instance
+	dsk = self.create_task('doxygen', node)
+
+	if getattr(self, 'doxy_tar', None):
+		tsk = self.create_task('tar')
+		tsk.input_tasks = [dsk]
+		tsk.set_outputs(self.path.find_or_declare(self.doxy_tar))
+		if self.doxy_tar.endswith('bz2'):
+			tsk.env['TAROPTS'] = ['cjf']
+		elif self.doxy_tar.endswith('gz'):
+			tsk.env['TAROPTS'] = ['czf']
+		else:
+			tsk.env['TAROPTS'] = ['cf']
+
+def configure(conf):
+	conf.find_program('doxygen', var='DOXYGEN')
+	conf.find_program('tar', var='TAR')
+
diff --git a/.waf-tools/openssl.py b/.waf-tools/openssl.py
new file mode 100644
index 0000000..7f599a9
--- /dev/null
+++ b/.waf-tools/openssl.py
@@ -0,0 +1,59 @@
+#! /usr/bin/env python
+# encoding: utf-8
+
+'''
+
+When using this tool, the wscript will look like:
+
+	def options(opt):
+	        opt.tool_options('openssl')
+
+	def configure(conf):
+		conf.load('compiler_c openssl')
+
+                conf.check_openssl()
+
+	def build(bld):
+		bld(source='main.cpp', target='app', use='OPENSSL')
+
+'''
+
+from waflib import Options
+from waflib.Configure import conf
+
+@conf
+def check_openssl(self,*k,**kw):
+        root = k and k[0] or kw.get('path',None) or Options.options.with_openssl
+        mandatory = kw.get('mandatory', True)
+        var = kw.get('var', 'OPENSSL')
+
+        CODE = """
+#include <openssl/crypto.h>
+#include <stdio.h>
+
+int main(int argc, char **argv) {
+	(void)argc;
+        printf ("%s", argv[0]);
+
+	return 0;
+}
+"""
+        if root:
+                libcrypto = self.check_cc (lib=['ssl', 'crypto'],
+                                           header_name='openssl/crypto.h',
+                                           define_name='HAVE_%s' % var,
+                                           uselib_store=var,
+                                           mandatory = mandatory,
+                                           cflags="-I%s/include" % root,
+                                           linkflags="-L%s/lib" % root,
+                                           execute = True, fragment = CODE, define_ret = True)
+        else:
+                libcrypto = self.check_cc (lib=['ssl', 'crypto'],
+                                           header_name='openssl/crypto.h',
+                                           define_name='HAVE_%s' % var,
+                                           uselib_store=var,
+                                           mandatory = mandatory,
+                                           execute = True, fragment = CODE, define_ret = True)
+
+def options(opt):
+        opt.add_option('--with-openssl',type='string',default='',dest='with_openssl',help='''Path to OpenSSL''')
diff --git a/.waf-tools/sphinx_build.py b/.waf-tools/sphinx_build.py
new file mode 100644
index 0000000..e1155d1
--- /dev/null
+++ b/.waf-tools/sphinx_build.py
@@ -0,0 +1,108 @@
+#!/usr/bin/env python
+# encoding: utf-8
+# Hans-Martin von Gaudecker, 2012
+
+"""
+Create Sphinx documentation. Currently only LaTeX and HTML are supported.
+
+The source file **must** be the conf.py file used by Sphinx. Everything
+else has defaults, passing in the parameters is optional.
+
+Usage for getting both html and pdf docs:
+
+    ctx(features='sphinx', source='docs/conf.py')
+    ctx(features='sphinx', source='docs/conf.py', buildername='latex')
+
+Optional parameters and their defaults:
+
+    * buildername: html
+    * srcdir: confdir (the directory where conf.py lives)
+    * outdir: confdir/buildername (in the build directory tree)
+    * doctreedir: outdir/.doctrees
+    * type: pdflatex (only applies to 'latex' builder)
+
+"""
+
+
+import os
+from waflib import Task, TaskGen, Errors, Logs
+
+class RunSphinxBuild(Task.Task):
+	def scan(self):
+		"""Use Sphinx' internal environment to find the dependencies."""
+		s = self.sphinx_instance
+		msg, dummy, iterator = s.env.update(s.config, s.srcdir, s.doctreedir, s)
+		s.info(msg)
+		dep_nodes = []
+		for docname in s.builder.status_iterator(iterator, "reading sources... "):
+			filename = docname + s.config.source_suffix
+			dep_nodes.append(self.srcdir.find_node(filename))
+		for dep in s.env.dependencies.values():
+			# Need the 'str' call because Sphinx might return Unicode strings.
+			[dep_nodes.append(self.srcdir.find_node(str(d))) for d in dep]
+		return (dep_nodes, [])
+
+	def run(self):
+		"""Run the Sphinx build."""
+		self.sphinx_instance.build(force_all=False, filenames=None)
+		return None
+
+	def post_run(self):
+		"""Add everything found in the output directory tree as an output.
+		Not elegant, but pragmatic."""
+		for n in self.outdir.ant_glob("**", quiet=True, remove=False):
+			if n not in self.outputs: self.set_outputs(n)
+		super(RunSphinxBuild, self).post_run()
+
+
+def _get_main_targets(tg, s):
+	"""Return some easy targets known from the Sphinx build environment **s.env**."""
+	out_dir = tg.bld.root.find_node(s.outdir)
+	tgt_nodes = []
+	if s.builder.name == "latex":
+		for tgt_info in s.env.config.latex_documents:
+			tgt_nodes.append(out_dir.find_or_declare(tgt_info[1]))
+	elif s.builder.name == "html":
+		suffix = getattr(s.env.config, "html_file_suffix", ".html")
+		tgt_name = s.env.config.master_doc + suffix
+		tgt_nodes.append(out_dir.find_or_declare(tgt_name))
+	else:
+		raise Errors.WafError("Sphinx builder not implemented: %s" % s.builder.name)
+	return tgt_nodes
+
+
+@TaskGen.feature("sphinx")
+@TaskGen.before_method("process_source")
+def apply_sphinx(tg):
+	"""Set up the task generator with a Sphinx instance and create a task."""
+
+        from sphinx.application import Sphinx
+
+	# Put together the configuration based on defaults and tg attributes.
+	conf = tg.path.find_node(tg.source)
+	confdir = conf.parent.abspath()
+	buildername = getattr(tg, "buildername", "html")
+	srcdir = getattr(tg, "srcdir", confdir)
+	outdir = tg.path.find_or_declare (getattr(tg, "outdir", os.path.join(conf.parent.get_bld().abspath(), buildername))).abspath ()
+        
+	doctreedir = getattr(tg, "doctreedir", os.path.join(outdir, ".doctrees"))
+
+	# Set up the Sphinx instance.
+	s = Sphinx (srcdir, confdir, outdir, doctreedir, buildername, status=None)
+
+	# Get the main targets of the Sphinx build.
+	tgt_nodes = _get_main_targets(tg, s)
+
+	# Create the task and set the required attributes.  
+	task = tg.create_task("RunSphinxBuild", src=conf, tgt=tgt_nodes)
+	task.srcdir = tg.bld.root.find_node(s.srcdir)
+	task.outdir = tg.bld.root.find_node(s.outdir)
+	task.sphinx_instance = s
+
+	# Build pdf if we have the LaTeX builder, allow for building with xelatex.
+	if s.builder.name == "latex":
+		compile_type = getattr(tg, "type", "pdflatex")
+		tg.bld(features="tex", type=compile_type, source=tgt_nodes, name="sphinx_pdf", prompt=0)
+
+	# Bypass the execution of process_source by setting the source to an empty list
+	tg.source = []
diff --git a/INSTALL b/INSTALL
deleted file mode 100644
index 3caf65b..0000000
--- a/INSTALL
+++ /dev/null
@@ -1,109 +0,0 @@
-NDN-CPP:  A Named Data Networking client library for C++ and C
--------------------------------------------------------------
-
-Prerequisites
--------------
-(These are prerequisites to build NDN-CPP.  To do development of NDN-CPP code and update the build system, 
- see Development Prerequisites.)
-
-Required: 
-
-* libcrypto
-* libsqlite3 
-* libcrypto++
-
-Optional: 
-
-* boost libraries (highly recommended)
-* OSX Security framework (for key storage)
-
-Following are the detailed steps for each platform to install the prerequisites.
-
-* Mac OS X 10.7.3, Mac OS X 10.8.4
-Install Xcode.
-In Xcode Preferences > Downloads, install "Command Line Tools".
-
-* Mac OS X 10.9
-Install Xcode.  (Xcode on OS X 10.9 seems to already have the Command Line Tools.)
-
-If using macports, dependencies can be installed using the following commands:
-
-    sudo port install boost sqlite3 libcryptopp
-
-* Ubuntu 12.04 (64 bit and 32 bit), Ubuntu 13.04 (64 bit)
-In a terminal, enter:
-
-    sudo apt-get install build-essential
-    sudo apt-get install libboost-all-dev libssl-dev libsqlite3-dev libcrypto++-dev
-
-* Windows Cygwin
-Cygwin is tested on Windows 7 64-bit with the "Devel" packages selected to install at the top level of the
-cygwin installer.  This includes libcrypto and libsqlite3.
-
-Build
------
-(These are instructions to build NDN-CPP. To do development of NDN-CPP code and update the build system, see Development.)
-
-To build in a terminal, change directory to the NDN-CPP root.  Enter:
-
-    ./configure
-    make
-    make install
-
-To make documentation, enter:
-
-    make doxygen-doc
-
-Files
------
-
-This makes the following libraries:
-
-.libs/libndn-c.a: The core C code for encoding and communication.
-.libs/libndn-cpp.a: The C++ library API.  (If linking to libndn-cpp, don't link to libndn-c since it is included.)
-
-This makes the following test files:
-
-bin/test-get-async: Connect to one of the NDN testbed hubs, express an interest and display the received data.
-bin/test-publish-async: Connect to the local NDN hub, accept interests with prefix /testecho and echo back a data packet.
-bin/test-encode-decode-interest: Encode and decode an interest, testing interest selectors and the name URI.
-bin/test-encode-decode-data: Encode and decode a data packet, including signing the data packet.
-bin/test-encode-decode-forwarding-entry: Encode and decode a data packet, including signing the data packet.
-
-Running make doxygen-doc puts code documentation in:
-doc/html
-
-Supported platforms
--------------------
-
-NDN-CPP is tested on the following platforms:
-Ubuntu 12.04 (64 bit and 32 bit) (gcc 4.6.3)
-Ubuntu 13.04 (64 bit) (gcc 4.7.3)
-Mac OS X 10.8.4 (clang 4.2)
-Mac OS X 10.8.4 (gcc 4.2)
-
-Development Prerequisites
--------------------------
-These steps are only needed to do development of NDN-CPP code and update the build system.
-First follow the Prerequisites above for your platforms.
-
-* Mac OS X 10.7.3, Mac OS X 10.8.4, Mac OS X 10.9
-Install MacPorts from http://www.macports.org/install.php
-In a terminal, enter:
-sudo port install automake
-sudo port install autoconf
-sudo port install libtool
-sudo port install doxygen
-
-* Ubuntu 12.04 (64 bit and 32 bit), Ubuntu 13.04 (64 bit)
-In a terminal, enter:
-sudo apt-get install automake
-sudo apt-get install libtool
-sudo apt-get install doxygen
-
-Development
------------
-Follow Development Prerequisites above for your platform.
-Now you can add source code files and update Makefile.am.  
-After updating, change directory to the NDN-CPP root and enter the following to build the Makefile:
-./autogen.sh
diff --git a/INSTALL.md b/INSTALL.md
new file mode 100644
index 0000000..65690a6
--- /dev/null
+++ b/INSTALL.md
@@ -0,0 +1,117 @@
+NDN-CPP-dev:  A dev version of Named Data Networking client library for C++
+===========================================================================
+
+Prerequisites
+-------------
+
+(These are prerequisites to build NDN-CPP.  To do development of NDN-CPP code and update the build system, 
+ see Development Prerequisites.)
+
+Required: 
+
+* libcrypto
+* libsqlite3 
+* libcrypto++
+* boost libraries
+* OSX Security framework (on OSX platform only)
+
+Following are the detailed steps for each platform to install the prerequisites.
+
+* Mac OS X 10.7.3, Mac OS X 10.8.4
+
+    Install Xcode.
+    In Xcode Preferences > Downloads, install "Command Line Tools".
+
+* Mac OS X 10.9
+
+    Install Xcode.  (Xcode on OS X 10.9 seems to already have the Command Line Tools.)
+
+    If using macports, dependencies can be installed using the following commands:
+
+        sudo port install boost sqlite3 libcryptopp
+
+* Ubuntu 12.04 (64 bit and 32 bit), Ubuntu 13.04 (64 bit)
+
+    In a terminal, enter:
+
+        sudo apt-get install build-essential
+        sudo apt-get install libboost-all-dev libssl-dev libsqlite3-dev libcrypto++-dev
+
+* Windows Cygwin
+
+    Cygwin is tested on Windows 7 64-bit with the "Devel" packages selected to install at the top level of the
+    cygwin installer.  This includes libcrypto and libsqlite3.
+
+Build
+-----
+
+(These are instructions to build NDN-CPP. To do development of NDN-CPP code and update the build system, see Development.)
+
+To build in a terminal, change directory to the NDN-CPP root.  Enter:
+
+    ./waf configure
+    ./waf
+    sudo ./waf install
+
+This makes and installs the following items:
+
+* ``<LIBPATH>/libndn-cpp-dev.*``: static and dynamic NDN C++ libraries
+* ``<LIBPATH>/pkgconfig/libndn-cpp-dev.pc``: pkgconfig file storing all neccessary flags
+  to build against the library.  For example, if pkgconfig or pkgconf package is
+  installed and PKG_CONFIG_PATH is configured properly (or ``<LIBPATH>/pkgconfig`` is a
+  default path), ``pkgconfig --libs --clflags libndn-cpp-dev`` will return all necessary
+  compile and link flags for the library.
+* ``<BINPATH>/tlvdump``: a simple tool to dump contents of TLV-formatted data
+* ``<BINPATH>/ndncatchunks3``: a simplified equivalent to ndncatchunks2 in NDNx package
+* ``<BINPATH>/ndnputchunks3``: a simplified equivalent to ndnputchunks2 in NDNx package
+
+If configured with tests: ``./waf configure --with-tests``), the above commands will
+also produce:
+
+* ``build/tests/unit-tests``: A tool to run unit tests for the library
+
+Documentation
+-------------
+
+To make documentation, enter:
+
+    ./waf doxygen
+
+This will produce doxygen API code documentation in:
+
+* build/doc/html
+
+Supported platforms
+-------------------
+
+(to be confirmed)
+
+NDN-CPP is tested on the following platforms:
+Ubuntu 12.04 (64 bit and 32 bit) (gcc 4.6.3)
+Ubuntu 13.04 (64 bit) (gcc 4.7.3)
+Mac OS X 10.8.4 (clang 4.2)
+Mac OS X 10.8.4 (gcc 4.2)
+
+Development Prerequisites
+-------------------------
+
+These steps are only needed to do development of NDN-CPP code and update the build system.
+First follow the Prerequisites above for your platforms.
+
+* Mac OS X 10.7.3, Mac OS X 10.8.4, Mac OS X 10.9
+
+    Install MacPorts from http://www.macports.org/install.php
+    In a terminal, enter:
+
+        sudo port install doxygen
+
+* Ubuntu 12.04 (64 bit and 32 bit), Ubuntu 13.04 (64 bit)
+
+    In a terminal, enter:
+
+        sudo apt-get install doxygen
+
+Development
+-----------
+
+Follow Development Prerequisites above for your platform.
diff --git a/Makefile.am b/Makefile.am
deleted file mode 100644
index 73d2a9b..0000000
--- a/Makefile.am
+++ /dev/null
@@ -1,141 +0,0 @@
-include aminclude.am
-
-## Place generated object files (.o) into the same directory as their source
-## files, in order to avoid collisions when non-recursive make is used.
-AUTOMAKE_OPTIONS = subdir-objects
-
-## Additional flags to pass to aclocal when it is invoked automatically at
-## make time. The ${ACLOCAL_FLAGS} variable is picked up from the environment
-## to provide a way for the user to supply additional arguments.
-ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} -I m4
-
-lib_LTLIBRARIES = libndn-cpp-dev.la
-
-# "make install" will also install the include headers.
-SUBDIRS = include . tools examples
-
-if COMPILE_TESTS
-  SUBDIRS += tests
-if HAVE_BOOST_UNIT_TEST_FRAMEWORK
-  SUBDIRS += tests_boost
-endif
-endif
-
-# Just the C code.
-## To regenerate:
-## for i in `find src/c -name '*.c' -or -name '*.h'`; do echo "  $i \\"; done
-##
-## Note that public header files do not need to be included here (handled by include/Makefile.am)
-libndn_c_la_SOURCES = \
-  src/c/data.h \
-  src/c/encoding/binary-xml-data.c \
-  src/c/encoding/binary-xml-data.h \
-  src/c/encoding/binary-xml-decoder.c \
-  src/c/encoding/binary-xml-decoder.h \
-  src/c/encoding/binary-xml-element-reader.c \
-  src/c/encoding/binary-xml-element-reader.h \
-  src/c/encoding/binary-xml-encoder.c \
-  src/c/encoding/binary-xml-encoder.h \
-  src/c/encoding/binary-xml-forwarding-entry.c \
-  src/c/encoding/binary-xml-forwarding-entry.h \
-  src/c/encoding/binary-xml-interest.c \
-  src/c/encoding/binary-xml-interest.h \
-  src/c/encoding/binary-xml-key.c \
-  src/c/encoding/binary-xml-key.h \
-  src/c/encoding/binary-xml-name.c \
-  src/c/encoding/binary-xml-name.h \
-  src/c/encoding/binary-xml-publisher-public-key-digest.c \
-  src/c/encoding/binary-xml-publisher-public-key-digest.h \
-  src/c/encoding/binary-xml-structure-decoder.c \
-  src/c/encoding/binary-xml-structure-decoder.h \
-  src/c/encoding/binary-xml.h \
-  src/c/errors.c \
-  src/c/errors.h \
-  src/c/forwarding-entry.h \
-  src/c/forwarding-flags.c \
-  src/c/interest.c \
-  src/c/interest.h \
-  src/c/key-locator.h \
-  src/c/name.c \
-  src/c/name.h \
-  src/c/publisher-public-key-digest.h \
-  src/c/transport/socket-transport.c \
-  src/c/transport/socket-transport.h \
-  src/c/transport/tcp-transport.h \
-  src/c/transport/udp-transport.h \
-  src/c/util/blob.h \
-  src/c/util/crypto.c \
-  src/c/util/dynamic-uint8-array.c \
-  src/c/util/dynamic-uint8-array.h \
-  src/c/util/ndn_memory.c \
-  src/c/util/ndn_memory.h \
-  src/c/util/ndn_realloc.c \
-  src/c/util/ndn_realloc.h \
-  src/c/util/time.c \
-  src/c/util/time.h
-
-libndn_c_la_LIBADD  = @OPENSSL_LIBS@
-libndn_c_la_LDFLAGS = @OPENSSL_LDFLAGS@
-libndn_c_la_CFLAGS  = @OPENSSL_INCLUDES@
-
-# C++ code and also the C code.
-## To regenerate:
-## for i in `find src -name '*.cpp' -or -name '*.hpp' -or -name '*.h' -and -not -path 'src/c/*'`; do echo "  $i \\"; done
-libndn_cpp_dev_la_SOURCES = $(libndn_c_la_SOURCES) \
-  src/common.cpp \
-  src/data.cpp \
-  src/encoding/binary-xml-decoder.hpp \
-  src/encoding/binary-xml-encoder.hpp \
-  src/encoding/binary-xml-structure-decoder.hpp \
-  src/encoding/binary-xml-wire-format.cpp \
-  src/encoding/block.cpp \
-  src/encoding/cryptopp/asn_ext.cpp \
-  src/encoding/cryptopp/asn_ext.hpp \
-  src/encoding/element-listener.cpp \
-  src/encoding/oid.cpp \
-  src/encoding/wire-format.cpp \
-  src/exclude.cpp \
-  src/face.cpp \
-  src/interest.cpp \
-  src/name.cpp \
-  src/node.cpp \
-  src/security/certificate-extension.cpp \
-  src/security/certificate-subject-description.cpp \
-  src/security/certificate.cpp \
-  src/security/identity-certificate.cpp \
-  src/security/public-key.cpp \
-  src/security/sec-public-info-sqlite3.cpp \
-  src/security/sec-tpm-file.cpp \
-  src/security/sec-public-info-memory.cpp \
-  src/security/sec-tpm-memory.cpp \
-  src/security/verifier.cpp \
-  src/security/sec-policy-no-verify.cpp \
-  src/security/sec-policy-self-verify.cpp \
-  src/transport/tcp-transport.cpp \
-  src/transport/unix-transport.cpp \
-  src/util/blob-stream.hpp \
-  src/util/blob.cpp \
-  src/util/changed-event.cpp \
-  src/util/changed-event.hpp \
-  src/util/dynamic-uint8-vector.cpp \
-  src/util/dynamic-uint8-vector.hpp \
-  src/util/logging.cpp \
-  src/util/logging.hpp \
-  src/util/ndnd-id-fetcher.hpp \
-  src/util/string-helper.hpp \
-  src/util/time.hpp
-
-if HAVE_OSX_SECURITY
-  libndn_cpp_dev_la_SOURCES += src/security/sec-tpm-osx.cpp
-else
-  EXTRA_DIST = src/security/sec-tpm-osx.cpp
-endif
-
-libndn_cpp_dev_la_LIBADD  = @OPENSSL_LIBS@     @CRYPTOPP_LIBS@     @OSX_SECURITY_LIBS@  @BOOST_SYSTEM_LIB@ @BOOST_FILESYSTEM_LIB@
-libndn_cpp_dev_la_LDFLAGS = @OPENSSL_LDFLAGS@  @CRYPTOPP_LDFLAGS@  @SQLITE3_LDFLAGS@    @BOOST_LDFLAGS@
-libndn_cpp_dev_la_CFLAGS  = @OPENSSL_INCLUDES@ @CRYPTOPP_INCLUDES@ @SQLITE3_CFLAGS@     @BOOST_CPPFLAGS@
-
-dist_noinst_SCRIPTS = autogen.sh
-
-pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = libndn-cpp-dev.pc
diff --git a/aminclude.am b/aminclude.am
deleted file mode 100644
index 65f6515..0000000
--- a/aminclude.am
+++ /dev/null
@@ -1,158 +0,0 @@
-# This file is copied from http://www.gnu.org/software/autoconf-archive/ax_prog_doxygen.html
-
-## --------------------------------- ##
-## Format-independent Doxygen rules. ##
-## --------------------------------- ##
-
-if DX_COND_doc
-
-## ------------------------------- ##
-## Rules specific for HTML output. ##
-## ------------------------------- ##
-
-if DX_COND_html
-
-DX_CLEAN_HTML = @DX_DOCDIR@/html
-
-endif DX_COND_html
-
-## ------------------------------ ##
-## Rules specific for CHM output. ##
-## ------------------------------ ##
-
-if DX_COND_chm
-
-DX_CLEAN_CHM = @DX_DOCDIR@/chm
-
-if DX_COND_chi
-
-DX_CLEAN_CHI = @DX_DOCDIR@/@PACKAGE@.chi
-
-endif DX_COND_chi
-
-endif DX_COND_chm
-
-## ------------------------------ ##
-## Rules specific for MAN output. ##
-## ------------------------------ ##
-
-if DX_COND_man
-
-DX_CLEAN_MAN = @DX_DOCDIR@/man
-
-endif DX_COND_man
-
-## ------------------------------ ##
-## Rules specific for RTF output. ##
-## ------------------------------ ##
-
-if DX_COND_rtf
-
-DX_CLEAN_RTF = @DX_DOCDIR@/rtf
-
-endif DX_COND_rtf
-
-## ------------------------------ ##
-## Rules specific for XML output. ##
-## ------------------------------ ##
-
-if DX_COND_xml
-
-DX_CLEAN_XML = @DX_DOCDIR@/xml
-
-endif DX_COND_xml
-
-## ----------------------------- ##
-## Rules specific for PS output. ##
-## ----------------------------- ##
-
-if DX_COND_ps
-
-DX_CLEAN_PS = @DX_DOCDIR@/@PACKAGE@.ps
-
-DX_PS_GOAL = doxygen-ps
-
-doxygen-ps: @DX_DOCDIR@/@PACKAGE@.ps
-
-@DX_DOCDIR@/@PACKAGE@.ps: @DX_DOCDIR@/@PACKAGE@.tag
-	cd @DX_DOCDIR@/latex; \
-	rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \
-	$(DX_LATEX) refman.tex; \
-	$(MAKEINDEX_PATH) refman.idx; \
-	$(DX_LATEX) refman.tex; \
-	countdown=5; \
-	while $(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' \
-	                  refman.log > /dev/null 2>&1 \
-	   && test $$countdown -gt 0; do \
-	    $(DX_LATEX) refman.tex; \
-	    countdown=`expr $$countdown - 1`; \
-	done; \
-	$(DX_DVIPS) -o ../@PACKAGE@.ps refman.dvi
-
-endif DX_COND_ps
-
-## ------------------------------ ##
-## Rules specific for PDF output. ##
-## ------------------------------ ##
-
-if DX_COND_pdf
-
-DX_CLEAN_PDF = @DX_DOCDIR@/@PACKAGE@.pdf
-
-DX_PDF_GOAL = doxygen-pdf
-
-doxygen-pdf: @DX_DOCDIR@/@PACKAGE@.pdf
-
-@DX_DOCDIR@/@PACKAGE@.pdf: @DX_DOCDIR@/@PACKAGE@.tag
-	cd @DX_DOCDIR@/latex; \
-	rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \
-	$(DX_PDFLATEX) refman.tex; \
-	$(DX_MAKEINDEX) refman.idx; \
-	$(DX_PDFLATEX) refman.tex; \
-	countdown=5; \
-	while $(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' \
-	                  refman.log > /dev/null 2>&1 \
-	   && test $$countdown -gt 0; do \
-	    $(DX_PDFLATEX) refman.tex; \
-	    countdown=`expr $$countdown - 1`; \
-	done; \
-	mv refman.pdf ../@PACKAGE@.pdf
-
-endif DX_COND_pdf
-
-## ------------------------------------------------- ##
-## Rules specific for LaTeX (shared for PS and PDF). ##
-## ------------------------------------------------- ##
-
-if DX_COND_latex
-
-DX_CLEAN_LATEX = @DX_DOCDIR@/latex
-
-endif DX_COND_latex
-
-.PHONY: doxygen-run doxygen-doc $(DX_PS_GOAL) $(DX_PDF_GOAL)
-
-.INTERMEDIATE: doxygen-run $(DX_PS_GOAL) $(DX_PDF_GOAL)
-
-doxygen-run: @DX_DOCDIR@/@PACKAGE@.tag
-
-doxygen-doc: doxygen-run $(DX_PS_GOAL) $(DX_PDF_GOAL)
-
-@DX_DOCDIR@/@PACKAGE@.tag: $(DX_CONFIG) $(pkginclude_HEADERS)
-	rm -rf @DX_DOCDIR@
-	$(DX_ENV) $(DX_DOXYGEN) $(srcdir)/$(DX_CONFIG)
-
-DX_CLEANFILES = \
-    @DX_DOCDIR@/@PACKAGE@.tag \
-    -r \
-    $(DX_CLEAN_HTML) \
-    $(DX_CLEAN_CHM) \
-    $(DX_CLEAN_CHI) \
-    $(DX_CLEAN_MAN) \
-    $(DX_CLEAN_RTF) \
-    $(DX_CLEAN_XML) \
-    $(DX_CLEAN_PS) \
-    $(DX_CLEAN_PDF) \
-    $(DX_CLEAN_LATEX)
-
-endif DX_COND_doc
diff --git a/autogen.sh b/autogen.sh
deleted file mode 100755
index 2e9954b..0000000
--- a/autogen.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-test -n "$srcdir" || srcdir=`dirname "$0"`
-test -n "$srcdir" || srcdir=.
-autoreconf --force --install --verbose "$srcdir"
diff --git a/configure.ac b/configure.ac
deleted file mode 100644
index e938039..0000000
--- a/configure.ac
+++ /dev/null
@@ -1,176 +0,0 @@
-# To build using autotools, see the Development section of the file INSTALL.
-
-AC_PREREQ([2.59])
-AC_INIT([ndn-cpp-dev], [0.2.1], [ndn-lib@lists.cs.ucla.edu], [ndn-cpp-dev], [https://github.com/named-data/ndn-cpp])
-AM_INIT_AUTOMAKE([1.10 -Wall no-define foreign])
-
-AC_CONFIG_MACRO_DIR([m4])
-AC_CONFIG_SRCDIR([configure.ac])
-# Create config.h without prefixes.  Put it in the include directory so CFLAGS will have -I./include .
-AC_CONFIG_HEADERS(include/config.h)
-# Add prefixes and output to a unique file name which will go into the ndn-cpp include install directory.
-AX_PREFIX_CONFIG_H(include/ndn-cpp-dev/ndn-cpp-config.h, ndn-cpp)
-AM_MAINTAINER_MODE
-AM_PROG_AR
-AC_PROG_LIBTOOL
-LT_PREREQ([2.2])
-LT_INIT()
-AC_PROG_CXX
-AM_PROG_CC_C_O
-AC_PROG_OBJCXX
-AC_LANG([C++])
-
-# Special case.
-case "$host" in
-  *-darwin* | *-macos10*)
-     if test -d /opt/local ; then
-       CFLAGS="$CFLAGS -I/opt/local/include"
-       CXXFLAGS="$CXXFLAGS -I/opt/local/include"
-       CPPFLAGS="$CPPFLAGS -I/opt/local/include"
-       LDFLAGS="$LDFLAGS -L/opt/local/lib"
-     elif test -d /sw ; then
-       CFLAGS="$CFLAGS -I/sw/include"
-       CXXFLAGS="$CXXFLAGS -I/sw/include"
-       CPPFLAGS="$CPPFLAGS -I/sw/include"
-       LDFLAGS="$LDFLAGS -L/sw/lib"
-     fi
-  ;;
-esac
-
-AC_TYPE_SIZE_T
-AC_TYPE_INT8_T
-AC_TYPE_INT16_T
-AC_TYPE_INT32_T
-AC_TYPE_INT64_T
-AC_TYPE_UINT8_T
-AC_TYPE_UINT16_T
-AC_TYPE_UINT32_T
-AC_TYPE_UINT64_T
-AC_CHECK_FUNCS([memcmp] [memcpy] [memset])
-AC_CHECK_FUNCS([strchr], :, AC_MSG_ERROR([*** strchr not found. Check 'config.log' for more details.]))
-AC_CHECK_FUNCS([sscanf], :, AC_MSG_ERROR([*** sscanf not found. Check 'config.log' for more details.]))
-AC_CHECK_HEADERS([time.h], :, AC_MSG_ERROR([*** time.h not found. Check 'config.log' for more details.]))
-AC_CHECK_HEADERS([sys/time.h], :, AC_MSG_ERROR([*** sys/time.h not found. Check 'config.log' for more details.]))
-AC_CHECK_FUNCS([gettimeofday], :, AC_MSG_ERROR([*** gettimeofday not found. processEvents requires it. Check 'config.log' for more details.]))
-AC_C_INLINE
-
-# Unless --with-c++11 specified, do not enable C++11 features
-AX_CXX_COMPILE_STDCXX_11(, optional)
-
-AC_ARG_WITH([system-boost],
-  AS_HELP_STRING(
-      [--without-system-boost],
-      [do not attempt to use system-installed boost libraries and use the bundled version (ndnboost) when necessary.]
-  ),
-  [
-  want_system_boost="yes"
-  if test "$withval" = "no"; then
-      want_system_boost="no"
-  fi
-  ],
-  [want_system_boost="yes"]
-)
-
-AX_BOOST_BASE([1.42.0],
-  [
-    if test "$want_system_boost" == "yes" ; then
-      AC_DEFINE(USE_SYSTEM_BOOST,[1],[use system-installed boost libraries])
-      AM_CONDITIONAL(USE_SYSTEM_BOOST, true)
-    else
-      AM_CONDITIONAL(USE_SYSTEM_BOOST, false)
-    fi
-  ],
-  [AM_CONDITIONAL(USE_SYSTEM_BOOST, false)]
-)
-AX_BOOST_ASIO
-
-AC_ARG_WITH([tests],
-  AS_HELP_STRING(
-      [--with-tests],
-      [Enable compilation of library tests (disabled by default).]
-  ),
-  [
-    want_tests="yes"
-    AM_CONDITIONAL(COMPILE_TESTS, true)
-  ],
-  [
-    want_tests="no"
-    AM_CONDITIONAL(COMPILE_TESTS, false)
-  ]
-)
-
-# @todo: These checks are not really optional
-AX_BOOST_SYSTEM
-AX_BOOST_FILESYSTEM
-AX_BOOST_UNIT_TEST_FRAMEWORK
-AM_CONDITIONAL(HAVE_BOOST_UNIT_TEST_FRAMEWORK, [test "x$ax_cv_boost_unit_test_framework" = "xyes"])
-
-AC_MSG_CHECKING([for gmtime support])
-AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
-    [[#include <time.h>]]
-    [[#include <sys/time.h>]]
-    [[struct timeval tv;]]
-    [[int result1 = gettimeofday(&tv, 0);]]
-    [[time_t time1 = time(0);]]
-    [[struct tm* tm1 = gmtime(&time1);]]
-    [[time_t time2 = timegm(tm1);]])
-], [
-    AC_MSG_RESULT([yes])
-    AC_DEFINE_UNQUOTED([HAVE_GMTIME_SUPPORT], 1, [1 if have sys/time gmtime support including timegm.])
-], [
-    AC_MSG_RESULT([no])
-    AC_DEFINE_UNQUOTED([HAVE_GMTIME_SUPPORT], 0, [1 if have sys/time gmtime support including timegm.])
-])
-
-# Require openssl (libcrypto).
-AX_CHECK_OPENSSL([], [AC_MSG_FAILURE([can't find openssl crypto lib])])
-
-AX_LIB_CRYPTOPP([], [AC_MSG_FAILURE([can't find crypto++ library])])
-
-# Conditionally use libsqlite3.  AX_LIB_SQLITE3 defines HAVE_SQLITE3 in confdefs.h .
-AX_LIB_SQLITE3()
-if grep -q "#define HAVE_SQLITE3" confdefs.h ; then
-  AC_CHECK_LIB([sqlite3], [sqlite3_open], [ ], # space necessar to prevent updating LIBS
-               [AC_MSG_FAILURE([have sqlite2 headers but no libsqlite3])])
-else
-  AC_MSG_ERROR(Missing required libsqlite3 library)
-fi
-
-
-# Conditionally use the OSX Security framework .
-AC_MSG_CHECKING([for OSX Security framework])
-AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
-    [[#include <CoreFoundation/CoreFoundation.h>]]
-    [[#include <Security/Security.h>]]
-    [[#include <CoreServices/CoreServices.h>]]
-    [[void test() { SecKeychainRef x; }]])
-], [
-    AC_MSG_RESULT([yes])
-    AC_DEFINE_UNQUOTED([HAVE_OSX_SECURITY], 1, [1 if have the OSX framework.])
-    AM_CONDITIONAL(HAVE_OSX_SECURITY, true)
-
-    OSX_SECURITY_LIBS="-framework Security"
-    AC_SUBST([OSX_SECURITY_LIBS])
-], [
-    AC_MSG_RESULT([no])
-    AM_CONDITIONAL(HAVE_OSX_SECURITY, false)
-])
-
-DX_HTML_FEATURE(ON)
-DX_CHM_FEATURE(OFF)
-DX_CHI_FEATURE(OFF)
-DX_MAN_FEATURE(OFF)
-DX_RTF_FEATURE(OFF)
-DX_XML_FEATURE(OFF)
-DX_PDF_FEATURE(OFF)
-DX_PS_FEATURE(OFF)
-DX_INIT_DOXYGEN([$PACKAGE_NAME],[Doxyfile])
-
-AC_CONFIG_FILES([Makefile
-                 include/Makefile
-                 examples/Makefile
-                 tools/Makefile
-                 tests/Makefile
-                 tests_boost/Makefile
-                 libndn-cpp-dev.pc])
-AC_OUTPUT
diff --git a/examples/Makefile.am b/examples/Makefile.am
deleted file mode 100644
index 121a867..0000000
--- a/examples/Makefile.am
+++ /dev/null
@@ -1,7 +0,0 @@
-
-LDADD = ../libndn-cpp-dev.la @BOOST_SYSTEM_LIB@
-
-noinst_PROGRAMS=consumer producer
-
-consumer_SOURCES = consumer.cpp
-producer_SOURCES = producer.cpp
diff --git a/examples/wscript b/examples/wscript
new file mode 100644
index 0000000..2cf856f
--- /dev/null
+++ b/examples/wscript
@@ -0,0 +1,12 @@
+# -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
+
+top = '..'
+
+def build(bld):
+    for app in bld.path.ant_glob('*.cpp'):
+        bld(features=['cxx', 'cxxprogram'],
+            target = '%s' % (str(app.change_ext('','.cpp'))),
+            source = app,
+            use = 'ndn-cpp-dev',
+            install_prefix = None,
+            )        
diff --git a/include/Makefile.am b/include/Makefile.am
deleted file mode 100644
index cf09eae..0000000
--- a/include/Makefile.am
+++ /dev/null
@@ -1,197 +0,0 @@
-# "make install" will install these in the install include directory, for example
-# /usr/local/ndn-cpp-dev/name.hpp.
-# These files are included by the application with, for example
-# #include <ndn-cpp-dev/namp.hpp>
-# Internal include headers are not put in this public install directory.
-
-# Public C headers.
-ndn_cpp_c_headers = \
-  $(wildcard ndn-cpp-dev/*.h) \
-  $(wildcard ndn-cpp-dev/c/*.*) \
-  $(wildcard ndn-cpp-dev/c/encoding/*.*) \
-  $(wildcard ndn-cpp-dev/c/util/*.*)
-
-# Public C++ headers.
-# Use ndn-cpp-dev/*.hpp instead of *.* to not overwrite *.h from above.
-ndn_cpp_cpp_headers = \
-  $(wildcard ndn-cpp-dev/*.hpp) \
-  $(wildcard ndn-cpp-dev/encoding/*.*) \
-  $(wildcard ndn-cpp-dev/security/*.*) \
-  $(wildcard ndn-cpp-dev/transport/*.*) \
-  $(wildcard ndn-cpp-dev/util/*.*)
-
-ndnboost_headers = \
-  $(wildcard ndnboost/*.*) \
-  $(wildcard ndnboost/utility/*.*) \
-  $(wildcard ndnboost/utility/detail/*.*) \
-  $(wildcard ndnboost/units/*.*) \
-  $(wildcard ndnboost/units/detail/*.*) \
-  $(wildcard ndnboost/unordered/*.*) \
-  $(wildcard ndnboost/unordered/detail/*.*) \
-  $(wildcard ndnboost/range/*.*) \
-  $(wildcard ndnboost/range/algorithm/*.*) \
-  $(wildcard ndnboost/range/detail/*.*) \
-  $(wildcard ndnboost/range/detail/vc6/*.*) \
-  $(wildcard ndnboost/smart_ptr/*.*) \
-  $(wildcard ndnboost/smart_ptr/detail/*.*) \
-  $(wildcard ndnboost/intrusive/*.*) \
-  $(wildcard ndnboost/intrusive/detail/*.*) \
-  $(wildcard ndnboost/typeof/*.*) \
-  $(wildcard ndnboost/typeof/dmc/*.*) \
-  $(wildcard ndnboost/typeof/msvc/*.*) \
-  $(wildcard ndnboost/config/*.*) \
-  $(wildcard ndnboost/config/no_tr1/*.*) \
-  $(wildcard ndnboost/config/abi/*.*) \
-  $(wildcard ndnboost/config/platform/*.*) \
-  $(wildcard ndnboost/config/compiler/*.*) \
-  $(wildcard ndnboost/config/stdlib/*.*) \
-  $(wildcard ndnboost/test/*.*) \
-  $(wildcard ndnboost/test/utils/*.*) \
-  $(wildcard ndnboost/test/utils/basic_cstring/*.*) \
-  $(wildcard ndnboost/test/utils/iterator/*.*) \
-  $(wildcard ndnboost/test/utils/runtime/*.*) \
-  $(wildcard ndnboost/test/utils/runtime/cla/*.*) \
-  $(wildcard ndnboost/test/utils/runtime/cla/detail/*.*) \
-  $(wildcard ndnboost/test/utils/runtime/cla/iface/*.*) \
-  $(wildcard ndnboost/test/utils/runtime/env/*.*) \
-  $(wildcard ndnboost/test/output/*.*) \
-  $(wildcard ndnboost/test/impl/*.*) \
-  $(wildcard ndnboost/test/detail/*.*) \
-  $(wildcard ndnboost/math/*.*) \
-  $(wildcard ndnboost/math/special_functions/*.*) \
-  $(wildcard ndnboost/math/special_functions/detail/*.*) \
-  $(wildcard ndnboost/math/tools/*.*) \
-  $(wildcard ndnboost/math/policies/*.*) \
-  $(wildcard ndnboost/bind/*.*) \
-  $(wildcard ndnboost/iterator/*.*) \
-  $(wildcard ndnboost/iterator/detail/*.*) \
-  $(wildcard ndnboost/mpl/*.*) \
-  $(wildcard ndnboost/mpl/vector/*.*) \
-  $(wildcard ndnboost/mpl/vector/aux_/*.*) \
-  $(wildcard ndnboost/mpl/vector/aux_/preprocessed/*.*) \
-  $(wildcard ndnboost/mpl/vector/aux_/preprocessed/typeof_based/*.*) \
-  $(wildcard ndnboost/mpl/vector/aux_/preprocessed/plain/*.*) \
-  $(wildcard ndnboost/mpl/vector/aux_/preprocessed/no_ctps/*.*) \
-  $(wildcard ndnboost/mpl/aux_/*.*) \
-  $(wildcard ndnboost/mpl/aux_/config/*.*) \
-  $(wildcard ndnboost/mpl/aux_/preprocessed/*.*) \
-  $(wildcard ndnboost/mpl/aux_/preprocessed/msvc60/*.*) \
-  $(wildcard ndnboost/mpl/aux_/preprocessed/dmc/*.*) \
-  $(wildcard ndnboost/mpl/aux_/preprocessed/bcc551/*.*) \
-  $(wildcard ndnboost/mpl/aux_/preprocessed/msvc70/*.*) \
-  $(wildcard ndnboost/mpl/aux_/preprocessed/gcc/*.*) \
-  $(wildcard ndnboost/mpl/aux_/preprocessed/plain/*.*) \
-  $(wildcard ndnboost/mpl/aux_/preprocessed/mwcw/*.*) \
-  $(wildcard ndnboost/mpl/aux_/preprocessed/bcc_pre590/*.*) \
-  $(wildcard ndnboost/mpl/aux_/preprocessed/no_ttp/*.*) \
-  $(wildcard ndnboost/mpl/aux_/preprocessed/bcc/*.*) \
-  $(wildcard ndnboost/mpl/aux_/preprocessed/no_ctps/*.*) \
-  $(wildcard ndnboost/mpl/aux_/preprocessor/*.*) \
-  $(wildcard ndnboost/mpl/limits/*.*) \
-  $(wildcard ndnboost/mpl/list/*.*) \
-  $(wildcard ndnboost/mpl/list/aux_/*.*) \
-  $(wildcard ndnboost/mpl/list/aux_/preprocessed/*.*) \
-  $(wildcard ndnboost/mpl/list/aux_/preprocessed/plain/*.*) \
-  $(wildcard ndnboost/regex/*.*) \
-  $(wildcard ndnboost/regex/config/*.*) \
-  $(wildcard ndnboost/regex/v4/*.*) \
-  $(wildcard ndnboost/regex/pending/*.*) \
-  $(wildcard ndnboost/filesystem/*.*) \
-  $(wildcard ndnboost/filesystem/detail/*.*) \
-  $(wildcard ndnboost/iostreams/*.*) \
-  $(wildcard ndnboost/iostreams/filter/*.*) \
-  $(wildcard ndnboost/iostreams/device/*.*) \
-  $(wildcard ndnboost/iostreams/detail/*.*) \
-  $(wildcard ndnboost/iostreams/detail/adapter/*.*) \
-  $(wildcard ndnboost/iostreams/detail/config/*.*) \
-  $(wildcard ndnboost/iostreams/detail/streambuf/*.*) \
-  $(wildcard ndnboost/iostreams/detail/vc6/*.*) \
-  $(wildcard ndnboost/iostreams/detail/broken_overload_resolution/*.*) \
-  $(wildcard ndnboost/integer/*.*) \
-  $(wildcard ndnboost/optional/*.*) \
-  $(wildcard ndnboost/numeric/*.*) \
-  $(wildcard ndnboost/numeric/conversion/*.*) \
-  $(wildcard ndnboost/numeric/conversion/detail/*.*) \
-  $(wildcard ndnboost/numeric/conversion/detail/preprocessed/*.*) \
-  $(wildcard ndnboost/function/*.*) \
-  $(wildcard ndnboost/function/detail/*.*) \
-  $(wildcard ndnboost/random/*.*) \
-  $(wildcard ndnboost/random/detail/*.*) \
-  $(wildcard ndnboost/system/*.*) \
-  $(wildcard ndnboost/container/*.*) \
-  $(wildcard ndnboost/functional/*.*) \
-  $(wildcard ndnboost/functional/hash/*.*) \
-  $(wildcard ndnboost/functional/hash/detail/*.*) \
-  $(wildcard ndnboost/pending/*.*) \
-  $(wildcard ndnboost/io/*.*) \
-  $(wildcard ndnboost/io/detail/*.*) \
-  $(wildcard ndnboost/exception/*.*) \
-  $(wildcard ndnboost/exception/detail/*.*) \
-  $(wildcard ndnboost/preprocessor/*.*) \
-  $(wildcard ndnboost/preprocessor/repetition/*.*) \
-  $(wildcard ndnboost/preprocessor/repetition/detail/*.*) \
-  $(wildcard ndnboost/preprocessor/repetition/detail/dmc/*.*) \
-  $(wildcard ndnboost/preprocessor/repetition/detail/edg/*.*) \
-  $(wildcard ndnboost/preprocessor/repetition/detail/msvc/*.*) \
-  $(wildcard ndnboost/preprocessor/facilities/*.*) \
-  $(wildcard ndnboost/preprocessor/logical/*.*) \
-  $(wildcard ndnboost/preprocessor/control/*.*) \
-  $(wildcard ndnboost/preprocessor/control/detail/*.*) \
-  $(wildcard ndnboost/preprocessor/control/detail/dmc/*.*) \
-  $(wildcard ndnboost/preprocessor/control/detail/edg/*.*) \
-  $(wildcard ndnboost/preprocessor/control/detail/msvc/*.*) \
-  $(wildcard ndnboost/preprocessor/arithmetic/*.*) \
-  $(wildcard ndnboost/preprocessor/arithmetic/detail/*.*) \
-  $(wildcard ndnboost/preprocessor/array/*.*) \
-  $(wildcard ndnboost/preprocessor/config/*.*) \
-  $(wildcard ndnboost/preprocessor/slot/*.*) \
-  $(wildcard ndnboost/preprocessor/slot/detail/*.*) \
-  $(wildcard ndnboost/preprocessor/seq/*.*) \
-  $(wildcard ndnboost/preprocessor/seq/detail/*.*) \
-  $(wildcard ndnboost/preprocessor/comparison/*.*) \
-  $(wildcard ndnboost/preprocessor/punctuation/*.*) \
-  $(wildcard ndnboost/preprocessor/iteration/*.*) \
-  $(wildcard ndnboost/preprocessor/iteration/detail/*.*) \
-  $(wildcard ndnboost/preprocessor/iteration/detail/iter/*.*) \
-  $(wildcard ndnboost/preprocessor/iteration/detail/bounds/*.*) \
-  $(wildcard ndnboost/preprocessor/debug/*.*) \
-  $(wildcard ndnboost/preprocessor/variadic/*.*) \
-  $(wildcard ndnboost/preprocessor/tuple/*.*) \
-  $(wildcard ndnboost/preprocessor/detail/*.*) \
-  $(wildcard ndnboost/preprocessor/detail/dmc/*.*) \
-  $(wildcard ndnboost/preprocessor/list/*.*) \
-  $(wildcard ndnboost/preprocessor/list/detail/*.*) \
-  $(wildcard ndnboost/preprocessor/list/detail/dmc/*.*) \
-  $(wildcard ndnboost/preprocessor/list/detail/edg/*.*) \
-  $(wildcard ndnboost/move/*.*) \
-  $(wildcard ndnboost/move/detail/*.*) \
-  $(wildcard ndnboost/algorithm/*.*) \
-  $(wildcard ndnboost/algorithm/string/*.*) \
-  $(wildcard ndnboost/algorithm/string/detail/*.*) \
-  $(wildcard ndnboost/type_traits/*.*) \
-  $(wildcard ndnboost/type_traits/msvc/*.*) \
-  $(wildcard ndnboost/type_traits/detail/*.*) \
-  $(wildcard ndnboost/tuple/*.*) \
-  $(wildcard ndnboost/tuple/detail/*.*) \
-  $(wildcard ndnboost/detail/*.*) \
-  $(wildcard ndnboost/function_types/*.*) \
-  $(wildcard ndnboost/function_types/config/*.*) \
-  $(wildcard ndnboost/function_types/detail/*.*) \
-  $(wildcard ndnboost/function_types/detail/pp_retag_default_cc/*.*) \
-  $(wildcard ndnboost/function_types/detail/components_impl/*.*) \
-  $(wildcard ndnboost/function_types/detail/pp_variate_loop/*.*) \
-  $(wildcard ndnboost/function_types/detail/classifier_impl/*.*) \
-  $(wildcard ndnboost/function_types/detail/pp_cc_loop/*.*) \
-  $(wildcard ndnboost/function_types/detail/encoding/*.*) \
-  $(wildcard ndnboost/function_types/detail/synthesize_impl/*.*) \
-  $(wildcard ndnboost/function_types/detail/pp_tags/*.*) \
-  $(wildcard ndnboost/concept/*.*) \
-  $(wildcard ndnboost/concept/detail/*.*) \
-  $(wildcard ndnboost/lambda/*.*) \
-  $(wildcard ndnboost/lambda/detail/*.*)
-
-nobase_include_HEADERS = $(ndn_cpp_c_headers) $(ndn_cpp_cpp_headers)
-
-if ! USE_SYSTEM_BOOST
-  nobase_include_HEADERS += $(ndnboost_headers)
-endif
diff --git a/include/ndn-cpp-dev/c/common.h b/include/ndn-cpp-dev/c/common.h
deleted file mode 100644
index 42edcef..0000000
--- a/include/ndn-cpp-dev/c/common.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_COMMON_H
-#define NDN_COMMON_H
-
-#include <ndn-cpp-dev/ndn-cpp-config.h>
-#include <stdint.h>
-// TODO: Is stddef.h portable?
-#include <stddef.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * A time interval represented as the number of milliseconds.
- */
-typedef int64_t ndn_Milliseconds;
-   
-/**
- * The calendar time represented as the number of milliseconds since 1/1/1970.
- */
-typedef int64_t ndn_MillisecondsSince1970;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/include/ndn-cpp-dev/c/data-types.h b/include/ndn-cpp-dev/c/data-types.h
deleted file mode 100644
index 668786b..0000000
--- a/include/ndn-cpp-dev/c/data-types.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_DATA_TYPES_H
-#define NDN_DATA_TYPES_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef enum {
-  ndn_ContentType_DATA = 0,
-  ndn_ContentType_ENCR = 1,
-  ndn_ContentType_GONE = 2,
-  ndn_ContentType_KEY =  3,
-  ndn_ContentType_LINK = 4,
-  ndn_ContentType_NACK = 5
-} ndn_ContentType;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/include/ndn-cpp-dev/c/encoding/element-listener.h b/include/ndn-cpp-dev/c/encoding/element-listener.h
deleted file mode 100644
index af88a85..0000000
--- a/include/ndn-cpp-dev/c/encoding/element-listener.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_ELEMENT_LISTENER_H
-#define NDN_ELEMENT_LISTENER_H
-
-#include "../common.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** An ndn_ElementListener struct holds a function pointer onReceivedElement.  You can extend this struct with data that
- * will be passed to onReceivedElement.
- */
-struct ndn_ElementListener {
-  void (*onReceivedElement)(struct ndn_ElementListener *self, uint8_t *element, size_t elementLength); /**< see ndn_ElementListener_initialize */
-};
-
-/**
- * Initialize an ndn_ElementListener struct to use the onReceivedElement function pointer.
- * @param self pointer to the ndn_ElementListener struct
- * @param onReceivedElement pointer to a function which is called when an entire binary XML element is received.
- * self is the pointer to this ndn_ElementListener struct.  See ndn_BinaryXmlElementReader_onReceivedData.
- */
-static inline void ndn_ElementListener_initialize
-  (struct ndn_ElementListener *self, void (*onReceivedElement)(struct ndn_ElementListener *self, uint8_t *element, size_t elementLength))
-{
-  self->onReceivedElement = onReceivedElement;
-}
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/include/ndn-cpp-dev/c/forwarding-flags.h b/include/ndn-cpp-dev/c/forwarding-flags.h
deleted file mode 100644
index 863bf04..0000000
--- a/include/ndn-cpp-dev/c/forwarding-flags.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_FORWARDING_FLAGS_H
-#define NDN_FORWARDING_FLAGS_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * An ndn_ForwardingFlags object holds the flags which specify how the forwarding daemon should forward an interest for
- * a registered prefix.  We use a separate ForwardingFlags object to retain future compatibility if the daemon forwarding
- * bits are changed, amended or deprecated.
- */
-struct ndn_ForwardingFlags {
-  int active; /**< 1 if the flag is set, 0 if cleared. */
-  int childInherit;
-  int advertise;
-  int last;
-  int capture;
-  int local;
-  int tap;
-  int captureOk;  
-};
-
-/**
- * Initialize an ndn_ForwardingFlags struct with the default with "active" and "childInherit" set and all other flags cleared.
- * @param self A pointer to the ndn_ForwardingFlags struct.
- */
-void ndn_ForwardingFlags_initialize(struct ndn_ForwardingFlags *self);
-
-/**
- * Get an integer with the bits set according to the flags as used by the ForwardingEntry message.
- * @param self A pointer to the ndn_ForwardingFlags struct.
- * @return An integer with the bits set.
- */
-int ndn_ForwardingFlags_getForwardingEntryFlags(struct ndn_ForwardingFlags *self);
-
-/**
- * Set the flags according to the bits in forwardingEntryFlags as used by the ForwardingEntry message.
- * @param self A pointer to the ndn_ForwardingFlags struct.
- * @param flags An integer with the bits set.
- */
-void ndn_ForwardingFlags_setForwardingEntryFlags(struct ndn_ForwardingFlags *self, int forwardingEntryFlags);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/include/ndn-cpp-dev/c/interest-types.h b/include/ndn-cpp-dev/c/interest-types.h
deleted file mode 100644
index a464e17..0000000
--- a/include/ndn-cpp-dev/c/interest-types.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_INTEREST_TYPES_H
-#define NDN_INTEREST_TYPES_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef enum {
-  ndn_Exclude_COMPONENT = 0,
-  ndn_Exclude_ANY = 1  
-} ndn_ExcludeType;
-
-enum {
-  ndn_Interest_CHILD_SELECTOR_LEFT = 0,
-  ndn_Interest_CHILD_SELECTOR_RIGHT = 1,
-
-  ndn_Interest_ANSWER_NO_CONTENT_STORE = 0,
-  ndn_Interest_ANSWER_CONTENT_STORE = 1,
-  ndn_Interest_ANSWER_GENERATED = 2,
-  ndn_Interest_ANSWER_STALE = 4,    // Stale answer OK
-  ndn_Interest_MARK_STALE = 16,      // Must have scope 0.  Michael calls this a "hack"
-
-  ndn_Interest_DEFAULT_ANSWER_ORIGIN_KIND = ndn_Interest_ANSWER_CONTENT_STORE | ndn_Interest_ANSWER_GENERATED
-};
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/include/ndn-cpp-dev/c/key-types.h b/include/ndn-cpp-dev/c/key-types.h
deleted file mode 100644
index 712aee8..0000000
--- a/include/ndn-cpp-dev/c/key-types.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_KEY_TYPES_H
-#define NDN_KEY_TYPES_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef enum {
-  ndn_KeyLocatorType_KEY = 1,
-  ndn_KeyLocatorType_CERTIFICATE = 2,
-  ndn_KeyLocatorType_KEYNAME = 3
-} ndn_KeyLocatorType;
-
-typedef enum {
-  ndn_KeyNameType_PUBLISHER_PUBLIC_KEY_DIGEST = 1,
-  ndn_KeyNameType_PUBLISHER_CERTIFICATE_DIGEST = 2,
-  ndn_KeyNameType_PUBLISHER_ISSUER_KEY_DIGEST = 3,
-  ndn_KeyNameType_PUBLISHER_ISSUER_CERTIFICATE_DIGEST = 4
-} ndn_KeyNameType;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/include/ndn-cpp-dev/c/util/crypto.h b/include/ndn-cpp-dev/c/util/crypto.h
deleted file mode 100644
index 43d47eb..0000000
--- a/include/ndn-cpp-dev/c/util/crypto.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_CRYPTO_H
-#define NDN_CRYPTO_H
-
-#include <openssl/ssl.h>
-#include <openssl/rsa.h>
-#include <ndn-cpp-dev/c/common.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * Compute the sha-256 digest of data.
- * @param data Pointer to the input byte array.
- * @param dataLength The length of data.
- * @param digest A pointer to a buffer of size SHA256_DIGEST_LENGTH to receive the data.
- */
-void ndn_digestSha256(const uint8_t *data, size_t dataLength, uint8_t *digest);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/include/ndn-cpp-dev/common.hpp b/include/ndn-cpp-dev/common.hpp
index 5efd3a0..95772b6 100644
--- a/include/ndn-cpp-dev/common.hpp
+++ b/include/ndn-cpp-dev/common.hpp
@@ -8,9 +8,12 @@
 #ifndef NDN_COMMON_HPP
 #define NDN_COMMON_HPP
 
+#include <ndn-cpp-dev/ndn-cpp-config.h>
+#include <stdint.h>
+// TODO: Is stddef.h portable?
+#include <stddef.h>
+
 #include <vector>
-// common.h include ndn-cpp-config.h.
-#include "c/common.h"
 
 #if NDN_CPP_HAVE_CXX11
 
@@ -18,9 +21,6 @@
 #error "NDN-CPP-DEV library is configured and compiled in C++11 mode, but the current compiler is not C++11 enabled"
 #endif
 
-// Depending on where ./configure found shared_ptr, define the ptr_lib namespace.
-// We always use ndn::ptr_lib.
-// #if NDN_CPP_HAVE_STD_SHARED_PTR
 #include <memory>
 namespace ndn { namespace ptr_lib = std; }
 
@@ -28,7 +28,7 @@
 #include <functional>
 namespace ndn { namespace func_lib = std; }
 
-#elif NDN_CPP_USE_SYSTEM_BOOST
+#else
 
 // #if NDN_CPP_HAVE_BOOST_SHARED_PTR
 #include <boost/shared_ptr.hpp>
@@ -41,37 +41,6 @@
 #include <boost/bind.hpp>
 namespace ndn { namespace func_lib = boost; }
 
-#else // use embedded boost headers
-/* Use the boost header files in this distribution that were extracted with:
-cd <BOOST DEVELOPMENT DIRECTORY WITH boost SUBDIRECTORY>
-dist/bin/bcp --namespace=ndnboost shared_ptr make_shared weak_ptr function bind any iostreams <NDN-CPP-DEV ROOT>/include
-cd <NDN-CPP-DEV ROOT>/include
-rm -rf boost.css boost.png Jamroot libs
-mv boost ndnboost
-cd ndnboost
-# Replace when including files.
-(unset LANG; find . -type f -exec sed -i '' 's/\<boost\//\<ndnboost\//g' {} +)
-(unset LANG; find . -type f -exec sed -i '' 's/\"boost\//\"ndnboost\//g' {} +)
-(unset LANG; find . -type f -exec sed -i '' 's/ boost\// ndnboost\//g' {} +)
-(unset LANG; find . -type f -exec sed -i '' 's/(boost\//(ndnboost\//g' {} +)
-# Replace macro definitions.
-(unset LANG; find . -type f -exec sed -i '' 's/BOOST_/NDNBOOST_/g' {} +)
-# Replace header include guards which don't start with BOOST_ .  This may result in some with NDNBOOST twice, but that is OK.
-(unset LANG; find . -type f -exec sed -i '' 's/_DWA/_NDNBOOST_DWA/g' {} +)
-(unset LANG; find . -type f -exec sed -i '' 's/ UUID_/ NDNBOOST_UUID_/g' {} +)
-(unset LANG; find . -type f -exec sed -i '' 's/ FILE_boost/ FILE_ndnboost/g' {} +)
-# Replace the mpl_ barrier namespace.  This should only change file adl_barrier.hpp.
-(unset LANG; find . -type f -exec sed -i '' 's/ mpl_/ ndnboost_mpl_/g' {} +)
- */
-#include <ndnboost/shared_ptr.hpp>
-#include <ndnboost/make_shared.hpp>
-namespace ndn { namespace ptr_lib = ndnboost; }
-
-// Use the boost header files in this distribution that were extracted as above:
-#include <ndnboost/function.hpp>
-#include <ndnboost/bind.hpp>
-namespace ndn { namespace func_lib = ndnboost; }
-
 #endif
 
 namespace ndn {
diff --git a/include/ndn-cpp-dev/encoding/binary-xml-wire-format.hpp b/include/ndn-cpp-dev/encoding/binary-xml-wire-format.hpp
deleted file mode 100644
index cb4f0aa..0000000
--- a/include/ndn-cpp-dev/encoding/binary-xml-wire-format.hpp
+++ /dev/null
@@ -1,88 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_BINARYXMLWIREFORMAT_HPP
-#define NDN_BINARYXMLWIREFORMAT_HPP
-
-#include "wire-format.hpp"
-
-namespace ndn {
-
-/**
- * A BinaryXmlWireFormat extends WireFormat to override its virtual methods to implement encoding and decoding
- * using binary XML.
- */
-class BinaryXmlWireFormat : public WireFormat {
-public:
-  /**
-   * Encode interest in binary XML and return the encoding.
-   * @param interest The Interest object to encode.
-   * @return A Blob containing the encoding.
-   */  
-  virtual Blob 
-  encodeInterest(const Interest& interest);
-    
-  /**
-   * Decode input as an interest in binary XML and set the fields of the interest object.
-   * @param interest The Interest object whose fields are updated.
-   * @param input A pointer to the input buffer to decode.
-   * @param inputLength The number of bytes in input.
-   */
-  virtual void 
-  decodeInterest(Interest& interest, const uint8_t *input, size_t inputLength);
-
-  /**
-   * Encode data with binary XML and return the encoding.
-   * @param data The Data object to encode.
-   * @param signedPortionBeginOffset Return the offset in the encoding of the beginning of the signed portion.
-   * If you are not encoding in order to sign, you can call encodeData(const Data& data) to ignore this returned value.
-   * @param signedPortionEndOffset Return the offset in the encoding of the end of the signed portion.
-   * If you are not encoding in order to sign, you can call encodeData(const Data& data) to ignore this returned value.
-   * @return A Blob containing the encoding.
-   */
-  virtual Blob 
-  encodeData
-    (const Data& data, size_t *signedPortionBeginOffset, size_t *signedPortionEndOffset);
-  
-  /**
-   * Decode input as a data packet in binary XML and set the fields in the data object.
-   * @param data The Data object whose fields are updated.
-   * @param input A pointer to the input buffer to decode.
-   * @param inputLength The number of bytes in input.
-   * @param signedPortionBeginOffset Return the offset in the input buffer of the beginning of the signed portion.
-   * If you are not decoding in order to verify, you can call 
-   * decodeData(Data& data, const uint8_t *input, size_t inputLength) to ignore this returned value.
-   * @param signedPortionEndOffset Return the offset in the input buffer of the end of the signed portion.
-   * If you are not decoding in order to verify, you can call 
-   * decodeData(Data& data, const uint8_t *input, size_t inputLength) to ignore this returned value.
-   */  
-  virtual void 
-  decodeData
-    (Data& data, const uint8_t *input, size_t inputLength, size_t *signedPortionBeginOffset, size_t *signedPortionEndOffset);
-
-  /**
-   * Encode forwardingEntry in binary XML and return the encoding. 
-   * @param forwardingEntry The ForwardingEntry object to encode.
-   * @return A Blob containing the encoding.
-   */
-  virtual Blob 
-  encodeForwardingEntry(const ForwardingEntry& forwardingEntry);
-  
-  /**
-   * Decode input as a forwarding entry in binary XML and set the fields of the forwardingEntry object. 
-   * @param forwardingEntry The ForwardingEntry object whose fields are updated.
-   * @param input A pointer to the input buffer to decode.
-   * @param inputLength The number of bytes in input.
-   */
-  virtual void 
-  decodeForwardingEntry(ForwardingEntry& forwardingEntry, const uint8_t *input, size_t inputLength);
-};
-  
-}
-
-#endif
-
diff --git a/include/ndn-cpp-dev/encoding/element-listener.hpp b/include/ndn-cpp-dev/encoding/element-listener.hpp
deleted file mode 100644
index 7d13312..0000000
--- a/include/ndn-cpp-dev/encoding/element-listener.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_ELEMENT_LISTENER_HPP
-#define NDN_ELEMENT_LISTENER_HPP
-
-#include "../c/encoding/element-listener.h"
-
-namespace ndn {
-
-/**
- * An ElementListener extends an ndn_ElementListener struct to proved an abstract virtual onReceivedElement function which wraps
- * the onReceivedElement used by the ndn_ElementListener struct.  You must extend this class to override onReceivedElement.
- */
-class ElementListener : public ndn_ElementListener {
-public:
-  ElementListener() 
-  {
-    ndn_ElementListener_initialize(this, staticOnReceivedElement);
-  }
-  
-  /**
-   * This is called when an entire binary XML element is received.  You must extend this class to override this method.
-   * @param element pointer to the binary XML element.  This buffer is only valid during this call.  If you need the data
-   * later, you must copy.
-   * @param elementLength length of element
-   */
-  virtual void 
-  onReceivedElement(const uint8_t *element, size_t elementLength) = 0;
-  
-private:
-  /**
-   * Call the virtual method onReceivedElement. This is used to initialize the base ndn_ElementListener struct.
-   * @param self
-   * @param element
-   * @param elementLength
-   */
-  static void 
-  staticOnReceivedElement(struct ndn_ElementListener *self, uint8_t *element, size_t elementLength);
-};
-
-}
-
-#endif
diff --git a/include/ndn-cpp-dev/encoding/endian.h b/include/ndn-cpp-dev/encoding/endian.hpp
similarity index 100%
rename from include/ndn-cpp-dev/encoding/endian.h
rename to include/ndn-cpp-dev/encoding/endian.hpp
diff --git a/include/ndn-cpp-dev/encoding/tlv.hpp b/include/ndn-cpp-dev/encoding/tlv.hpp
index 3d42402..511d0f6 100644
--- a/include/ndn-cpp-dev/encoding/tlv.hpp
+++ b/include/ndn-cpp-dev/encoding/tlv.hpp
@@ -13,7 +13,7 @@
 #include <stdexcept>
 #include <iterator>
 #include "buffer.hpp"
-#include "endian.h"
+#include "endian.hpp"
 
 namespace ndn {
 
diff --git a/include/ndn-cpp-dev/encoding/wire-format.hpp b/include/ndn-cpp-dev/encoding/wire-format.hpp
deleted file mode 100644
index 1a40cd1..0000000
--- a/include/ndn-cpp-dev/encoding/wire-format.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_WIREFORMAT_HPP
-#define NDN_WIREFORMAT_HPP
-
-#include "../common.hpp"
-#include "../util/blob.hpp"
-
-namespace ndn {
-  
-class Interest;
-class Data;
-class ForwardingEntry;
-  
-class WireFormat {
-public:
-  /**
-   * Encode interest and return the encoding.  Your derived class should override.
-   * @param interest The Interest object to encode.
-   * @return A Blob containing the encoding.
-   * @throw logic_error for unimplemented if the derived class does not override.
-   */
-  virtual Blob 
-  encodeInterest(const Interest& interest);
-  
-  /**
-   * Decode input as an interest and set the fields of the interest object.  Your derived class should override.
-   * @param interest The Interest object whose fields are updated.
-   * @param input A pointer to the input buffer to decode.
-   * @param inputLength The number of bytes in input.
-   * @throw logic_error for unimplemented if the derived class does not override.
-   */
-  virtual void 
-  decodeInterest(Interest& interest, const uint8_t *input, size_t inputLength);
-
-  /**
-   * Encode data and return the encoding.  Your derived class should override.
-   * @param data The Data object to encode.
-   * @param signedPortionBeginOffset Return the offset in the encoding of the beginning of the signed portion.
-   * If you are not encoding in order to sign, you can call encodeData(const Data& data) to ignore this returned value.
-   * @param signedPortionEndOffset Return the offset in the encoding of the end of the signed portion.
-   * If you are not encoding in order to sign, you can call encodeData(const Data& data) to ignore this returned value.
-   * @return A Blob containing the encoding.
-   * @throw logic_error for unimplemented if the derived class does not override.
-   */
-  virtual Blob 
-  encodeData
-    (const Data& data, size_t *signedPortionBeginOffset, size_t *signedPortionEndOffset);
-
-  /**
-   * Encode data and return the encoding.
-   * @param data The Data object to encode.
-   * @return A Blob containing the encoding.
-   * @throw logic_error for unimplemented if the derived class does not override.
-   */
-  Blob 
-  encodeData(const Data& data)
-  {
-    size_t dummyBeginOffset, dummyEndOffset;
-    return encodeData(data, &dummyBeginOffset, &dummyEndOffset);
-  }
-
-  /**
-   * Decode input as a data packet and set the fields in the data object.  Your derived class should override.
-   * @param data The Data object whose fields are updated.
-   * @param input A pointer to the input buffer to decode.
-   * @param inputLength The number of bytes in input.
-   * @param signedPortionBeginOffset Return the offset in the input buffer of the beginning of the signed portion.
-   * If you are not decoding in order to verify, you can call 
-   * decodeData(Data& data, const uint8_t *input, size_t inputLength) to ignore this returned value.
-   * @param signedPortionEndOffset Return the offset in the input buffer of the end of the signed portion.
-   * If you are not decoding in order to verify, you can call 
-   * decodeData(Data& data, const uint8_t *input, size_t inputLength) to ignore this returned value.
-   * @throw logic_error for unimplemented if the derived class does not override.
-   */  
-  virtual void 
-  decodeData
-    (Data& data, const uint8_t *input, size_t inputLength, size_t *signedPortionBeginOffset, size_t *signedPortionEndOffset);
-
-  void 
-  decodeData(Data& data, const uint8_t *input, size_t inputLength)
-  {
-    size_t dummyBeginOffset, dummyEndOffset;
-    decodeData(data, input, inputLength, &dummyBeginOffset, &dummyEndOffset);
-  }
-  
-  /**
-   * Encode forwardingEntry and return the encoding.  Your derived class should override.
-   * @param forwardingEntry The ForwardingEntry object to encode.
-   * @return A Blob containing the encoding.
-   * @throw logic_error for unimplemented if the derived class does not override.
-   */
-  virtual Blob 
-  encodeForwardingEntry(const ForwardingEntry& forwardingEntry);
-  
-  /**
-   * Decode input as a forwarding entry and set the fields of the forwardingEntry object.  Your derived class should override.
-   * @param forwardingEntry The ForwardingEntry object whose fields are updated.
-   * @param input A pointer to the input buffer to decode.
-   * @param inputLength The number of bytes in input.
-   * @throw logic_error for unimplemented if the derived class does not override.
-   */
-  virtual void 
-  decodeForwardingEntry(ForwardingEntry& forwardingEntry, const uint8_t *input, size_t inputLength);
-
-  /**
-   * Set the static default WireFormat used by default encoding and decoding methods.
-   * @param wireFormat A Pointer to an object of a subclass of WireFormat.  This does not make a copy and
-   * the caller must ensure that the object remains allocated.
-   */
-  static void 
-  setDefaultWireFormat(WireFormat *wireFormat) 
-  {
-    defaultWireFormat_ = wireFormat;
-  }
-  
-  /**
-   * Return the default WireFormat used by default encoding and decoding methods which was set with
-   * setDefaultWireFormat.
-   * @return A pointer to the WireFormat object.
-   */
-  static WireFormat*
-  getDefaultWireFormat();
-  
-private:
-  /**
-   * This is implemented by only one of the subclasses of WireFormat to return a new object used
-   * as the initial value for the default WireFormat.  If the application doesn't include that class, then the application
-   * needs to include another subclass which defines WireFormat::newInitialDefaultWireFormat.
-   * @return a new object, which is held by a shared_ptr and freed when the application exits.
-   */
-  static WireFormat*
-  newInitialDefaultWireFormat();
-  
-  static WireFormat *defaultWireFormat_;
-};
-
-}
-
-#endif
-
diff --git a/include/ndn-cpp-dev/security/security-exception.hpp b/include/ndn-cpp-dev/security/security-exception.hpp
deleted file mode 100644
index daf1d61..0000000
--- a/include/ndn-cpp-dev/security/security-exception.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Yingdi Yu <yingdi@cs.ucla.edu>
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_SECURITY_EXCEPTION_HPP
-#define NDN_SECURITY_EXCEPTION_HPP
-
-#include <exception>
-#include <string>
-
-namespace ndn {
-
-class SecurityException : public std::exception {
-public:
-  SecurityException(const std::string& errorMessage) throw();
-    
-  virtual ~SecurityException() throw();
-    
-  std::string Msg() { return errorMessage_; }
-
-  virtual const char* what() const throw() { return errorMessage_.c_str(); }
-    
-private:
-  const std::string errorMessage_;
-};
-
-class UnrecognizedKeyFormatException : public SecurityException {
-public:
-  UnrecognizedKeyFormatException(const std::string& errorMessage)
-  : SecurityException(errorMessage)
-  {
-  }
-};
-
-class UnrecognizedDigestAlgorithmException : public SecurityException {
-public:
-  UnrecognizedDigestAlgorithmException(const std::string& errorMessage)
-  : SecurityException(errorMessage)
-  {
-  }
-};
-
-}
-
-#endif
diff --git a/include/ndn-cpp-dev/security/sha256-with-rsa-handler.hpp b/include/ndn-cpp-dev/security/sha256-with-rsa-handler.hpp
deleted file mode 100644
index 6627f02..0000000
--- a/include/ndn-cpp-dev/security/sha256-with-rsa-handler.hpp
+++ /dev/null
@@ -1,38 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Yingdi Yu <yingdi@cs.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_SHA256_RSA_HANDLER_HPP
-#define NDN_SHA256_RSA_HANDLER_HPP
-
-#include "../../data.hpp"
-#include "../certificate/public-key.hpp"
-
-namespace ndn{
-
-class Sha256WithRsaHandler {
-public:
-  Sha256WithRsaHandler() {}
-
-  virtual
-  ~Sha256WithRsaHandler() {}
-
- /**
-  * Verify the signature on the data packet using the given public key. If there is no data.getDefaultWireEncoding(),
-  * this calls data.wireEncode() to set it.
-  * @param data The data packet with the signed portion and the signature to verify. The data packet must have a
-  * Sha256WithRsaSignature.
-  * @param publicKey The public key used to verify the signature.
-  * @return true if the signature verifies, false if not.
-  * @throw SecurityException if data does not have a Sha256WithRsaSignature.
-  */
-  static bool
-  verifySignature(const Data& data, const PublicKey& publicKey);
-
-};
-
-}
-#endif
diff --git a/include/ndn-cpp-dev/util/blob.hpp b/include/ndn-cpp-dev/util/blob.hpp
deleted file mode 100644
index 4de7a02..0000000
--- a/include/ndn-cpp-dev/util/blob.hpp
+++ /dev/null
@@ -1,112 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_BLOB_HPP
-#define NDN_BLOB_HPP
-
-#include "../common.hpp"
-
-struct ndn_Blob;
-
-namespace ndn {
-
-/**
- * A Blob holds a pointer to an immutable byte array implemented as const std::vector<uint8_t>.  
- * This is like a JavaScript string which is a pointer to an immutable string.  
- * It is OK to pass a pointer to the string because the new owner can't change the bytes
- * of the string.  However, like a JavaScript string, it is possible to change the pointer, and so this does allow
- * the copy constructor and assignment to change the pointer.  Also remember that the pointer can be null.
- * (Note that we could have made Blob derive directly from vector<uint8_t> and then explicitly use
- * a pointer to it like Blob, but this does not enforce immutability because we can't declare
- * Blob as derived from const vector<uint8_t>.)
- */
-class Blob : public ptr_lib::shared_ptr<const std::vector<uint8_t> > {
-public:
-  /**
-   * Create a new Blob with a null pointer.
-   */
-  Blob()
-  {  
-  }
-  
-  /**
-   * Create a new Blob with an immutable copy of the given array.
-   * @param value A pointer to the byte array which is copied.
-   * @param valueLength The length of value.
-   */
-  Blob(const uint8_t* value, size_t valueLength)
-  : ptr_lib::shared_ptr<const std::vector<uint8_t> >(new std::vector<uint8_t>(value, value + valueLength))
-  {
-  }
-  
-  /**
-   * Create a new Blob with an immutable copy of the array in the given vector.
-   * If you want to transfer the array without copying, the the vector has to start as a 
-   * ptr_lib::shared_ptr<std::vector<uint8_t> > and you can use the Blob constructor with this type.
-   * @param value A reference to a vector which is copied.
-   */
-  Blob(const std::vector<uint8_t> &value)
-  : ptr_lib::shared_ptr<const std::vector<uint8_t> >(new std::vector<uint8_t>(value))
-  {
-  }
-  
-  /**
-   * Create a new Blob with an immutable copy of the array in the given Blob struct.
-   * @param blobStruct The C ndn_Blob struct to receive the pointer.
-   */
-  Blob(const struct ndn_Blob& blobStruct);
-  
-  /**
-   * Create a new Blob to point to an existing byte array.  IMPORTANT: After calling this constructor,
-   * if you keep a pointer to the array then you must treat the array as immutable and promise not to change it.
-   * @param value A pointer to a vector with the byte array.  This takes another reference and does not copy the bytes.
-   */
-  Blob(const ptr_lib::shared_ptr<std::vector<uint8_t> > &value)
-  : ptr_lib::shared_ptr<const std::vector<uint8_t> >((const ptr_lib::shared_ptr<const std::vector<uint8_t> > &)value)
-  {
-  }
-  Blob(const ptr_lib::shared_ptr<const std::vector<uint8_t> > &value)
-  : ptr_lib::shared_ptr<const std::vector<uint8_t> >(value)
-  {
-  }
-  
-  /**
-   * Return the length of the immutable byte array.
-   */
-  size_t 
-  size() const
-  {
-    if (*this)
-      return (*this)->size();
-    else
-      return 0;
-  }
-
-  /**
-   * Return a const pointer to the first byte of the immutable byte array, or 0 if the pointer is null.
-   */
-  const uint8_t* 
-  buf() const
-  {
-    if (*this)
-      return &(*this)->front();
-    else
-      return 0;
-  }
-  
-  /**
-   * Set the blobStruct to point to this Blob's byte array, without copying any memory.
-   * WARNING: The resulting pointer in blobStruct is invalid after a further use of this object which could reallocate memory.
-   * @param blobStruct The C ndn_Blob struct to receive the pointer.
-   */
-  void 
-  get(struct ndn_Blob& blobStruct) const;
-};
-
-}
-
-#endif
diff --git a/include/ndn-cpp-dev/util/crypto.hpp b/include/ndn-cpp-dev/util/crypto.hpp
new file mode 100644
index 0000000..8908a76
--- /dev/null
+++ b/include/ndn-cpp-dev/util/crypto.hpp
@@ -0,0 +1,27 @@
+/**
+ * Copyright (C) 2013 Regents of the University of California.
+ * @author: Jeff Thompson <jefft0@remap.ucla.edu>
+ * See COPYING for copyright and distribution information.
+ */
+
+#ifndef NDN_UTIL_CRYPTO_HPP
+#define NDN_UTIL_CRYPTO_HPP
+
+#include "ndn-cpp-dev/common.hpp"
+
+#include <openssl/ssl.h>
+#include <openssl/rsa.h>
+
+namespace ndn {
+
+/**
+ * Compute the sha-256 digest of data.
+ * @param data Pointer to the input byte array.
+ * @param dataLength The length of data.
+ * @param digest A pointer to a buffer of size SHA256_DIGEST_LENGTH to receive the data.
+ */
+void ndn_digestSha256(const uint8_t *data, size_t dataLength, uint8_t *digest);
+
+} // namespace ndn
+
+#endif // NDN_UTIL_CRYPTO_HPP
diff --git a/include/ndn-cpp-dev/util/signed-blob.hpp b/include/ndn-cpp-dev/util/signed-blob.hpp
deleted file mode 100644
index 1ad2d25..0000000
--- a/include/ndn-cpp-dev/util/signed-blob.hpp
+++ /dev/null
@@ -1,121 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Zhenkai Zhu <zhenkai@cs.ucla.edu>
- * @author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_SIGNED_BLOB_HPP
-#define NDN_SIGNED_BLOB_HPP
-
-#include "blob.hpp"
-
-namespace ndn {
-
-/**
- * A SignedBlob extends Blob to keep the offsets of a signed portion (e.g., the bytes of Data packet).
- */
-class SignedBlob : public Blob {
-public:
-  /**
-   * Create a new SignedBlob with a null pointer.
-   */
-  SignedBlob()
-  : signedPortionBeginOffset_(0), signedPortionEndOffset_(0)
-  {  
-  }
-  
-  /**
-   * Create a new SignedBlob with an immutable copy of the given array.
-   * @param value A pointer to the byte array which is copied.
-   * @param valueLength The length of value.
-   * @param signedPortionBeginOffset The offset in the encoding of the beginning of the signed portion.
-   * @param signedPortionEndOffset The offset in the encoding of the end of the signed portion.
-   */
-  SignedBlob
-    (const uint8_t* value, size_t valueLength, size_t signedPortionBeginOffset, size_t signedPortionEndOffset)
-  : Blob(value, valueLength), signedPortionBeginOffset_(signedPortionBeginOffset), signedPortionEndOffset_(signedPortionEndOffset)
-  {
-  }
-  
-  /**
-   * Create a new SignedBlob with an immutable copy of the array in the given vector.
-   * If you want to transfer the array without copying, the the vector has to start as a 
-   * ptr_lib::shared_ptr<std::vector<uint8_t> > and you can use the SignedBlob constructor with this type.
-   * @param value A reference to a vector which is copied.
-   * @param signedPortionBeginOffset The offset in the encoding of the beginning of the signed portion.
-   * @param signedPortionEndOffset The offset in the encoding of the end of the signed portion.
-   */
-  SignedBlob
-    (const std::vector<uint8_t> &value, size_t signedPortionBeginOffset, size_t signedPortionEndOffset)
-  : Blob(value), signedPortionBeginOffset_(signedPortionBeginOffset), signedPortionEndOffset_(signedPortionEndOffset)
-  {
-  }
-  
-  /**
-   * Create a new SignedBlob to point to an existing byte array.  IMPORTANT: After calling this constructor,
-   * if you keep a pointer to the array then you must treat the array as immutable and promise not to change it.
-   * @param value A pointer to a vector with the byte array.  This takes another reference and does not copy the bytes.
-   * @param signedPortionBeginOffset The offset in the array of the beginning of the signed portion.
-   * @param signedPortionEndOffset The offset in the array of the end of the signed portion.
-   */
-  SignedBlob
-    (const ptr_lib::shared_ptr<std::vector<uint8_t> > &value, 
-     size_t signedPortionBeginOffset, size_t signedPortionEndOffset)
-  : Blob(value), signedPortionBeginOffset_(signedPortionBeginOffset), signedPortionEndOffset_(signedPortionEndOffset)
-  {
-  }
-  SignedBlob
-    (const ptr_lib::shared_ptr<const std::vector<uint8_t> > &value, 
-     size_t signedPortionBeginOffset, size_t signedPortionEndOffset)
-  : Blob(value), signedPortionBeginOffset_(signedPortionBeginOffset), signedPortionEndOffset_(signedPortionEndOffset)
-  {
-  }
-    
-  /**
-   * Return the length of the signed portion of the immutable byte array, or 0 of the pointer to the array is null.
-   */
-  size_t 
-  signedSize() const
-  {
-    if (*this)
-      return signedPortionEndOffset_ - signedPortionBeginOffset_;
-    else
-      return 0;
-  }
-
-  /**
-   * Return a const pointer to the first byte of the signed portion of the immutable byte array, or 0 if the 
-   * pointer to the array is null.
-   */
-  const uint8_t*
-  signedBuf() const
-  {
-    if (*this)
-      return &(*this)->front() + signedPortionBeginOffset_;
-    else
-      return 0;
-  }
-
-  /**
-   * Return the offset in the array of the beginning of the signed portion.
-   */  
-  size_t 
-  getSignedPortionBeginOffset() const { return signedPortionBeginOffset_; }
-
-  /**
-   * Return the offset in the array of the end of the signed portion.
-   */  
-  size_t 
-  getSignedPortionEndOffset() const { return signedPortionEndOffset_; }
-  
-private:
-  size_t signedPortionBeginOffset_;
-  size_t signedPortionEndOffset_;
-};
-
-}
-
-#endif
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
diff --git a/libndn-cpp-dev.pc.in b/libndn-cpp-dev.pc.in
index 6219d0b..0e31949 100644
--- a/libndn-cpp-dev.pc.in
+++ b/libndn-cpp-dev.pc.in
@@ -6,5 +6,5 @@
 Name: libndn-cpp-dev
 Description: Development version of C++ API for NDN (NDN-TLV packet format)
 Version: @VERSION@
-Libs: -L${libdir} @OPENSSL_LDFLAGS@ @CRYPTOPP_LDFLAGS@ @SQLITE3_LDFLAGS@ @BOOST_LDFLAGS@ -lndn-cpp-dev @OPENSSL_LIBS@ @CRYPTOPP_LIBS@ @OSX_SECURITY_LIBS@ @BOOST_SYSTEM_LIB@ @BOOST_FILESYSTEM_LIB@
-Cflags: -I${includedir} @OPENSSL_INCLUDES@ @CRYPTOPP_INCLUDES@ @SQLITE3_CFLAGS@ @BOOST_CPPFLAGS@
+Libs: -L${libdir} @EXTRA_LDFLAGS@ -lndn-cpp-dev @EXTRA_LIBS@
+Cflags: -I${includedir} @EXTRA_INCLUDES@
diff --git a/m4/ax_boost_asio.m4 b/m4/ax_boost_asio.m4
deleted file mode 100644
index b57d487..0000000
--- a/m4/ax_boost_asio.m4
+++ /dev/null
@@ -1,110 +0,0 @@
-# ===========================================================================
-#       http://www.gnu.org/software/autoconf-archive/ax_boost_asio.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-#   AX_BOOST_ASIO
-#
-# DESCRIPTION
-#
-#   Test for Asio library from the Boost C++ libraries. The macro requires a
-#   preceding call to AX_BOOST_BASE. Further documentation is available at
-#   <http://randspringer.de/boost/index.html>.
-#
-#   This macro calls:
-#
-#     AC_SUBST(BOOST_ASIO_LIB)
-#
-#   And sets:
-#
-#     HAVE_BOOST_ASIO
-#
-# LICENSE
-#
-#   Copyright (c) 2008 Thomas Porschberg <thomas@randspringer.de>
-#   Copyright (c) 2008 Pete Greenwell <pete@mu.org>
-#
-#   Copying and distribution of this file, with or without modification, are
-#   permitted in any medium without royalty provided the copyright notice
-#   and this notice are preserved. This file is offered as-is, without any
-#   warranty.
-
-#serial 16
-
-AC_DEFUN([AX_BOOST_ASIO],
-[
-	AC_ARG_WITH([boost-asio],
-	AS_HELP_STRING([--with-boost-asio@<:@=special-lib@:>@],
-                   [use the ASIO library from boost - it is possible to specify a certain library for the linker
-                        e.g. --with-boost-asio=boost_system-gcc41-mt-1_34 ]),
-        [
-        if test "$withval" = "no"; then
-			want_boost="no"
-        elif test "$withval" = "yes"; then
-            want_boost="yes"
-            ax_boost_user_asio_lib=""
-        else
-		    want_boost="yes"
-		ax_boost_user_asio_lib="$withval"
-		fi
-        ],
-        [want_boost="yes"]
-	)
-
-	if test "x$want_boost" = "xyes"; then
-        AC_REQUIRE([AC_PROG_CC])
-		CPPFLAGS_SAVED="$CPPFLAGS"
-		CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
-		export CPPFLAGS
-
-		LDFLAGS_SAVED="$LDFLAGS"
-		LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
-		export LDFLAGS
-
-        AC_CACHE_CHECK(whether the Boost::ASIO library is available,
-					   ax_cv_boost_asio,
-        [AC_LANG_PUSH([C++])
-		 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ @%:@include <boost/asio.hpp>
-											]],
-                                  [[
-
-                                    boost::asio::io_service io;
-                                    boost::system::error_code timer_result;
-                                    boost::asio::deadline_timer t(io);
-                                    t.cancel();
-                                    io.run_one();
-									return 0;
-                                   ]])],
-                             ax_cv_boost_asio=yes, ax_cv_boost_asio=no)
-         AC_LANG_POP([C++])
-		])
-		if test "x$ax_cv_boost_asio" = "xyes"; then
-			AC_DEFINE(HAVE_BOOST_ASIO,,[define if the Boost::ASIO library is available])
-			BN=boost_system
-			BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'`
-            if test "x$ax_boost_user_asio_lib" = "x"; then
-				for ax_lib in `ls $BOOSTLIBDIR/libboost_system*.so* $BOOSTLIBDIR/libboost_system*.dylib* $BOOSTLIBDIR/libboost_system*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^lib\(boost_system.*\)\.so.*$;\1;' -e 's;^lib\(boost_system.*\)\.dylib.*$;\1;' -e 's;^lib\(boost_system.*\)\.a.*$;\1;' ` ; do
-				    AC_CHECK_LIB($ax_lib, main, [BOOST_ASIO_LIB="-l$ax_lib" AC_SUBST(BOOST_ASIO_LIB) link_thread="yes" break],
-                                 [link_thread="no"])
-				done
-            else
-               for ax_lib in $ax_boost_user_asio_lib $BN-$ax_boost_user_asio_lib; do
-				      AC_CHECK_LIB($ax_lib, main,
-                                   [BOOST_ASIO_LIB="-l$ax_lib" AC_SUBST(BOOST_ASIO_LIB) link_asio="yes" break],
-                                   [link_asio="no"])
-                  done
-
-            fi
-            if test "x$ax_lib" = "x"; then
-                AC_MSG_ERROR(Could not find a version of the library!)
-            fi
-			if test "x$link_asio" = "xno"; then
-				AC_MSG_ERROR(Could not link against $ax_lib !)
-			fi
-		fi
-
-		CPPFLAGS="$CPPFLAGS_SAVED"
-	LDFLAGS="$LDFLAGS_SAVED"
-	fi
-])
diff --git a/m4/ax_boost_base.m4 b/m4/ax_boost_base.m4
deleted file mode 100644
index 6b7ce35..0000000
--- a/m4/ax_boost_base.m4
+++ /dev/null
@@ -1,272 +0,0 @@
-# ===========================================================================
-#       http://www.gnu.org/software/autoconf-archive/ax_boost_base.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-#   AX_BOOST_BASE([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
-#
-# DESCRIPTION
-#
-#   Test for the Boost C++ libraries of a particular version (or newer)
-#
-#   If no path to the installed boost library is given the macro searchs
-#   under /usr, /usr/local, /opt and /opt/local and evaluates the
-#   $BOOST_ROOT environment variable. Further documentation is available at
-#   <http://randspringer.de/boost/index.html>.
-#
-#   This macro calls:
-#
-#     AC_SUBST(BOOST_CPPFLAGS) / AC_SUBST(BOOST_LDFLAGS)
-#
-#   And sets:
-#
-#     HAVE_BOOST
-#
-# LICENSE
-#
-#   Copyright (c) 2008 Thomas Porschberg <thomas@randspringer.de>
-#   Copyright (c) 2009 Peter Adolphs
-#
-#   Copying and distribution of this file, with or without modification, are
-#   permitted in any medium without royalty provided the copyright notice
-#   and this notice are preserved. This file is offered as-is, without any
-#   warranty.
-
-#serial 22
-
-AC_DEFUN([AX_BOOST_BASE],
-[
-AC_ARG_WITH([boost],
-  [AS_HELP_STRING([--with-boost@<:@=ARG@:>@],
-    [use Boost library from a standard location (ARG=yes),
-     from the specified location (ARG=<path>),
-     or disable it (ARG=no)
-     @<:@ARG=yes@:>@ ])],
-    [
-    if test "$withval" = "no"; then
-        want_boost="no"
-    elif test "$withval" = "yes"; then
-        want_boost="yes"
-        ac_boost_path=""
-    else
-        want_boost="yes"
-        ac_boost_path="$withval"
-    fi
-    ],
-    [want_boost="yes"])
-
-
-AC_ARG_WITH([boost-libdir],
-        AS_HELP_STRING([--with-boost-libdir=LIB_DIR],
-        [Force given directory for boost libraries. Note that this will override library path detection, so use this parameter only if default library detection fails and you know exactly where your boost libraries are located.]),
-        [
-        if test -d "$withval"
-        then
-                ac_boost_lib_path="$withval"
-        else
-                AC_MSG_ERROR(--with-boost-libdir expected directory name)
-        fi
-        ],
-        [ac_boost_lib_path=""]
-)
-
-if test "x$want_boost" = "xyes"; then
-    boost_lib_version_req=ifelse([$1], ,1.20.0,$1)
-    boost_lib_version_req_shorten=`expr $boost_lib_version_req : '\([[0-9]]*\.[[0-9]]*\)'`
-    boost_lib_version_req_major=`expr $boost_lib_version_req : '\([[0-9]]*\)'`
-    boost_lib_version_req_minor=`expr $boost_lib_version_req : '[[0-9]]*\.\([[0-9]]*\)'`
-    boost_lib_version_req_sub_minor=`expr $boost_lib_version_req : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'`
-    if test "x$boost_lib_version_req_sub_minor" = "x" ; then
-        boost_lib_version_req_sub_minor="0"
-        fi
-    WANT_BOOST_VERSION=`expr $boost_lib_version_req_major \* 100000 \+  $boost_lib_version_req_minor \* 100 \+ $boost_lib_version_req_sub_minor`
-    AC_MSG_CHECKING(for boostlib >= $boost_lib_version_req)
-    succeeded=no
-
-    dnl On 64-bit systems check for system libraries in both lib64 and lib.
-    dnl The former is specified by FHS, but e.g. Debian does not adhere to
-    dnl this (as it rises problems for generic multi-arch support).
-    dnl The last entry in the list is chosen by default when no libraries
-    dnl are found, e.g. when only header-only libraries are installed!
-    libsubdirs="lib"
-    ax_arch=`uname -m`
-    case $ax_arch in
-      x86_64|ppc64|s390x|sparc64|aarch64)
-        libsubdirs="lib64 lib lib64"
-        ;;
-    esac
-
-    dnl allow for real multi-arch paths e.g. /usr/lib/x86_64-linux-gnu. Give
-    dnl them priority over the other paths since, if libs are found there, they
-    dnl are almost assuredly the ones desired.
-    AC_REQUIRE([AC_CANONICAL_HOST])
-    libsubdirs="lib/${host_cpu}-${host_os} $libsubdirs"
-
-    case ${host_cpu} in
-      i?86)
-        libsubdirs="lib/i386-${host_os} $libsubdirs"
-        ;;
-    esac
-
-    dnl first we check the system location for boost libraries
-    dnl this location ist chosen if boost libraries are installed with the --layout=system option
-    dnl or if you install boost with RPM
-    if test "$ac_boost_path" != ""; then
-        BOOST_CPPFLAGS="-I$ac_boost_path/include"
-        for ac_boost_path_tmp in $libsubdirs; do
-                if test -d "$ac_boost_path"/"$ac_boost_path_tmp" ; then
-                        BOOST_LDFLAGS="-L$ac_boost_path/$ac_boost_path_tmp"
-                        break
-                fi
-        done
-    elif test "$cross_compiling" != yes; then
-        for ac_boost_path_tmp in /usr /usr/local /opt /opt/local ; do
-            if test -d "$ac_boost_path_tmp/include/boost" && test -r "$ac_boost_path_tmp/include/boost"; then
-                for libsubdir in $libsubdirs ; do
-                    if ls "$ac_boost_path_tmp/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi
-                done
-                BOOST_LDFLAGS="-L$ac_boost_path_tmp/$libsubdir"
-                BOOST_CPPFLAGS="-I$ac_boost_path_tmp/include"
-                break;
-            fi
-        done
-    fi
-
-    dnl overwrite ld flags if we have required special directory with
-    dnl --with-boost-libdir parameter
-    if test "$ac_boost_lib_path" != ""; then
-       BOOST_LDFLAGS="-L$ac_boost_lib_path"
-    fi
-
-    CPPFLAGS_SAVED="$CPPFLAGS"
-    CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
-    export CPPFLAGS
-
-    LDFLAGS_SAVED="$LDFLAGS"
-    LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
-    export LDFLAGS
-
-    AC_REQUIRE([AC_PROG_CXX])
-    AC_LANG_PUSH(C++)
-        AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
-    @%:@include <boost/version.hpp>
-    ]], [[
-    #if BOOST_VERSION >= $WANT_BOOST_VERSION
-    // Everything is okay
-    #else
-    #  error Boost version is too old
-    #endif
-    ]])],[
-        AC_MSG_RESULT(yes)
-    succeeded=yes
-    found_system=yes
-        ],[
-        ])
-    AC_LANG_POP([C++])
-
-
-
-    dnl if we found no boost with system layout we search for boost libraries
-    dnl built and installed without the --layout=system option or for a staged(not installed) version
-    if test "x$succeeded" != "xyes"; then
-        _version=0
-        if test "$ac_boost_path" != ""; then
-            if test -d "$ac_boost_path" && test -r "$ac_boost_path"; then
-                for i in `ls -d $ac_boost_path/include/boost-* 2>/dev/null`; do
-                    _version_tmp=`echo $i | sed "s#$ac_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'`
-                    V_CHECK=`expr $_version_tmp \> $_version`
-                    if test "$V_CHECK" = "1" ; then
-                        _version=$_version_tmp
-                    fi
-                    VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'`
-                    BOOST_CPPFLAGS="-I$ac_boost_path/include/boost-$VERSION_UNDERSCORE"
-                done
-            fi
-        else
-            if test "$cross_compiling" != yes; then
-                for ac_boost_path in /usr /usr/local /opt /opt/local ; do
-                    if test -d "$ac_boost_path" && test -r "$ac_boost_path"; then
-                        for i in `ls -d $ac_boost_path/include/boost-* 2>/dev/null`; do
-                            _version_tmp=`echo $i | sed "s#$ac_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'`
-                            V_CHECK=`expr $_version_tmp \> $_version`
-                            if test "$V_CHECK" = "1" ; then
-                                _version=$_version_tmp
-                                best_path=$ac_boost_path
-                            fi
-                        done
-                    fi
-                done
-
-                VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'`
-                BOOST_CPPFLAGS="-I$best_path/include/boost-$VERSION_UNDERSCORE"
-                if test "$ac_boost_lib_path" = ""; then
-                    for libsubdir in $libsubdirs ; do
-                        if ls "$best_path/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi
-                    done
-                    BOOST_LDFLAGS="-L$best_path/$libsubdir"
-                fi
-            fi
-
-            if test "x$BOOST_ROOT" != "x"; then
-                for libsubdir in $libsubdirs ; do
-                    if ls "$BOOST_ROOT/stage/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi
-                done
-                if test -d "$BOOST_ROOT" && test -r "$BOOST_ROOT" && test -d "$BOOST_ROOT/stage/$libsubdir" && test -r "$BOOST_ROOT/stage/$libsubdir"; then
-                    version_dir=`expr //$BOOST_ROOT : '.*/\(.*\)'`
-                    stage_version=`echo $version_dir | sed 's/boost_//' | sed 's/_/./g'`
-                        stage_version_shorten=`expr $stage_version : '\([[0-9]]*\.[[0-9]]*\)'`
-                    V_CHECK=`expr $stage_version_shorten \>\= $_version`
-                    if test "$V_CHECK" = "1" -a "$ac_boost_lib_path" = "" ; then
-                        AC_MSG_NOTICE(We will use a staged boost library from $BOOST_ROOT)
-                        BOOST_CPPFLAGS="-I$BOOST_ROOT"
-                        BOOST_LDFLAGS="-L$BOOST_ROOT/stage/$libsubdir"
-                    fi
-                fi
-            fi
-        fi
-
-        CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
-        export CPPFLAGS
-        LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
-        export LDFLAGS
-
-        AC_LANG_PUSH(C++)
-            AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
-        @%:@include <boost/version.hpp>
-        ]], [[
-        #if BOOST_VERSION >= $WANT_BOOST_VERSION
-        // Everything is okay
-        #else
-        #  error Boost version is too old
-        #endif
-        ]])],[
-            AC_MSG_RESULT(yes)
-        succeeded=yes
-        found_system=yes
-            ],[
-            ])
-        AC_LANG_POP([C++])
-    fi
-
-    if test "$succeeded" != "yes" ; then
-        if test "$_version" = "0" ; then
-            AC_MSG_NOTICE([[We could not detect the boost libraries (version $boost_lib_version_req_shorten or higher). If you have a staged boost library (still not installed) please specify \$BOOST_ROOT in your environment and do not give a PATH to --with-boost option.  If you are sure you have boost installed, then check your version number looking in <boost/version.hpp>. See http://randspringer.de/boost for more documentation.]])
-        else
-            AC_MSG_NOTICE([Your boost libraries seems to old (version $_version).])
-        fi
-        # execute ACTION-IF-NOT-FOUND (if present):
-        ifelse([$3], , :, [$3])
-    else
-        AC_SUBST(BOOST_CPPFLAGS)
-        AC_SUBST(BOOST_LDFLAGS)
-        AC_DEFINE(HAVE_BOOST,,[define if the Boost library is available])
-        # execute ACTION-IF-FOUND (if present):
-        ifelse([$2], , :, [$2])
-    fi
-
-    CPPFLAGS="$CPPFLAGS_SAVED"
-    LDFLAGS="$LDFLAGS_SAVED"
-fi
-
-])
diff --git a/m4/ax_boost_filesystem.m4 b/m4/ax_boost_filesystem.m4
deleted file mode 100644
index f162163..0000000
--- a/m4/ax_boost_filesystem.m4
+++ /dev/null
@@ -1,118 +0,0 @@
-# ===========================================================================
-#    http://www.gnu.org/software/autoconf-archive/ax_boost_filesystem.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-#   AX_BOOST_FILESYSTEM
-#
-# DESCRIPTION
-#
-#   Test for Filesystem library from the Boost C++ libraries. The macro
-#   requires a preceding call to AX_BOOST_BASE. Further documentation is
-#   available at <http://randspringer.de/boost/index.html>.
-#
-#   This macro calls:
-#
-#     AC_SUBST(BOOST_FILESYSTEM_LIB)
-#
-#   And sets:
-#
-#     HAVE_BOOST_FILESYSTEM
-#
-# LICENSE
-#
-#   Copyright (c) 2009 Thomas Porschberg <thomas@randspringer.de>
-#   Copyright (c) 2009 Michael Tindal
-#   Copyright (c) 2009 Roman Rybalko <libtorrent@romanr.info>
-#
-#   Copying and distribution of this file, with or without modification, are
-#   permitted in any medium without royalty provided the copyright notice
-#   and this notice are preserved. This file is offered as-is, without any
-#   warranty.
-
-#serial 26
-
-AC_DEFUN([AX_BOOST_FILESYSTEM],
-[
-	AC_ARG_WITH([boost-filesystem],
-	AS_HELP_STRING([--with-boost-filesystem@<:@=special-lib@:>@],
-                   [use the Filesystem library from boost - it is possible to specify a certain library for the linker
-                        e.g. --with-boost-filesystem=boost_filesystem-gcc-mt ]),
-        [
-        if test "$withval" = "no"; then
-			want_boost="no"
-        elif test "$withval" = "yes"; then
-            want_boost="yes"
-            ax_boost_user_filesystem_lib=""
-        else
-		    want_boost="yes"
-		ax_boost_user_filesystem_lib="$withval"
-		fi
-        ],
-        [want_boost="yes"]
-	)
-
-	if test "x$want_boost" = "xyes"; then
-        AC_REQUIRE([AC_PROG_CC])
-		CPPFLAGS_SAVED="$CPPFLAGS"
-		CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
-		export CPPFLAGS
-
-		LDFLAGS_SAVED="$LDFLAGS"
-		LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
-		export LDFLAGS
-
-		LIBS_SAVED=$LIBS
-		LIBS="$LIBS $BOOST_SYSTEM_LIB"
-		export LIBS
-
-        AC_CACHE_CHECK(whether the Boost::Filesystem library is available,
-					   ax_cv_boost_filesystem,
-        [AC_LANG_PUSH([C++])
-         AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <boost/filesystem/path.hpp>]],
-                                   [[using namespace boost::filesystem;
-                                   path my_path( "foo/bar/data.txt" );
-                                   return 0;]])],
-					       ax_cv_boost_filesystem=yes, ax_cv_boost_filesystem=no)
-         AC_LANG_POP([C++])
-		])
-		if test "x$ax_cv_boost_filesystem" = "xyes"; then
-			AC_DEFINE(HAVE_BOOST_FILESYSTEM,,[define if the Boost::Filesystem library is available])
-            BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'`
-            if test "x$ax_boost_user_filesystem_lib" = "x"; then
-                for libextension in `ls -r $BOOSTLIBDIR/libboost_filesystem* 2>/dev/null | sed 's,.*/lib,,' | sed 's,\..*,,'` ; do
-                     ax_lib=${libextension}
-				    AC_CHECK_LIB($ax_lib, exit,
-                                 [BOOST_FILESYSTEM_LIB="-l$ax_lib"; AC_SUBST(BOOST_FILESYSTEM_LIB) link_filesystem="yes"; break],
-                                 [link_filesystem="no"])
-				done
-                if test "x$link_filesystem" != "xyes"; then
-                for libextension in `ls -r $BOOSTLIBDIR/boost_filesystem* 2>/dev/null | sed 's,.*/,,' | sed -e 's,\..*,,'` ; do
-                     ax_lib=${libextension}
-				    AC_CHECK_LIB($ax_lib, exit,
-                                 [BOOST_FILESYSTEM_LIB="-l$ax_lib"; AC_SUBST(BOOST_FILESYSTEM_LIB) link_filesystem="yes"; break],
-                                 [link_filesystem="no"])
-				done
-		    fi
-            else
-               for ax_lib in $ax_boost_user_filesystem_lib boost_filesystem-$ax_boost_user_filesystem_lib; do
-				      AC_CHECK_LIB($ax_lib, exit,
-                                   [BOOST_FILESYSTEM_LIB="-l$ax_lib"; AC_SUBST(BOOST_FILESYSTEM_LIB) link_filesystem="yes"; break],
-                                   [link_filesystem="no"])
-                  done
-
-            fi
-            if test "x$ax_lib" = "x"; then
-                AC_MSG_ERROR(Could not find a version of the library!)
-            fi
-			if test "x$link_filesystem" != "xyes"; then
-				AC_MSG_ERROR(Could not link against $ax_lib !)
-			fi
-		fi
-
-		CPPFLAGS="$CPPFLAGS_SAVED"
-		LDFLAGS="$LDFLAGS_SAVED"
-		LIBS="$LIBS_SAVED"
-	fi
-])
diff --git a/m4/ax_boost_system.m4 b/m4/ax_boost_system.m4
deleted file mode 100644
index c4c4555..0000000
--- a/m4/ax_boost_system.m4
+++ /dev/null
@@ -1,120 +0,0 @@
-# ===========================================================================
-#      http://www.gnu.org/software/autoconf-archive/ax_boost_system.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-#   AX_BOOST_SYSTEM
-#
-# DESCRIPTION
-#
-#   Test for System library from the Boost C++ libraries. The macro requires
-#   a preceding call to AX_BOOST_BASE. Further documentation is available at
-#   <http://randspringer.de/boost/index.html>.
-#
-#   This macro calls:
-#
-#     AC_SUBST(BOOST_SYSTEM_LIB)
-#
-#   And sets:
-#
-#     HAVE_BOOST_SYSTEM
-#
-# LICENSE
-#
-#   Copyright (c) 2008 Thomas Porschberg <thomas@randspringer.de>
-#   Copyright (c) 2008 Michael Tindal
-#   Copyright (c) 2008 Daniel Casimiro <dan.casimiro@gmail.com>
-#
-#   Copying and distribution of this file, with or without modification, are
-#   permitted in any medium without royalty provided the copyright notice
-#   and this notice are preserved. This file is offered as-is, without any
-#   warranty.
-
-#serial 17
-
-AC_DEFUN([AX_BOOST_SYSTEM],
-[
-	AC_ARG_WITH([boost-system],
-	AS_HELP_STRING([--with-boost-system@<:@=special-lib@:>@],
-                   [use the System library from boost - it is possible to specify a certain library for the linker
-                        e.g. --with-boost-system=boost_system-gcc-mt ]),
-        [
-        if test "$withval" = "no"; then
-			want_boost="no"
-        elif test "$withval" = "yes"; then
-            want_boost="yes"
-            ax_boost_user_system_lib=""
-        else
-		    want_boost="yes"
-		ax_boost_user_system_lib="$withval"
-		fi
-        ],
-        [want_boost="yes"]
-	)
-
-	if test "x$want_boost" = "xyes"; then
-        AC_REQUIRE([AC_PROG_CC])
-        AC_REQUIRE([AC_CANONICAL_BUILD])
-		CPPFLAGS_SAVED="$CPPFLAGS"
-		CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
-		export CPPFLAGS
-
-		LDFLAGS_SAVED="$LDFLAGS"
-		LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
-		export LDFLAGS
-
-        AC_CACHE_CHECK(whether the Boost::System library is available,
-					   ax_cv_boost_system,
-        [AC_LANG_PUSH([C++])
-			 CXXFLAGS_SAVE=$CXXFLAGS
-
-			 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <boost/system/error_code.hpp>]],
-                                   [[boost::system::system_category]])],
-                   ax_cv_boost_system=yes, ax_cv_boost_system=no)
-			 CXXFLAGS=$CXXFLAGS_SAVE
-             AC_LANG_POP([C++])
-		])
-		if test "x$ax_cv_boost_system" = "xyes"; then
-			AC_SUBST(BOOST_CPPFLAGS)
-
-			AC_DEFINE(HAVE_BOOST_SYSTEM,,[define if the Boost::System library is available])
-            BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'`
-
-			LDFLAGS_SAVE=$LDFLAGS
-            if test "x$ax_boost_user_system_lib" = "x"; then
-                for libextension in `ls -r $BOOSTLIBDIR/libboost_system* 2>/dev/null | sed 's,.*/lib,,' | sed 's,\..*,,'` ; do
-                     ax_lib=${libextension}
-				    AC_CHECK_LIB($ax_lib, exit,
-                                 [BOOST_SYSTEM_LIB="-l$ax_lib"; AC_SUBST(BOOST_SYSTEM_LIB) link_system="yes"; break],
-                                 [link_system="no"])
-				done
-                if test "x$link_system" != "xyes"; then
-                for libextension in `ls -r $BOOSTLIBDIR/boost_system* 2>/dev/null | sed 's,.*/,,' | sed -e 's,\..*,,'` ; do
-                     ax_lib=${libextension}
-				    AC_CHECK_LIB($ax_lib, exit,
-                                 [BOOST_SYSTEM_LIB="-l$ax_lib"; AC_SUBST(BOOST_SYSTEM_LIB) link_system="yes"; break],
-                                 [link_system="no"])
-				done
-                fi
-
-            else
-               for ax_lib in $ax_boost_user_system_lib boost_system-$ax_boost_user_system_lib; do
-				      AC_CHECK_LIB($ax_lib, exit,
-                                   [BOOST_SYSTEM_LIB="-l$ax_lib"; AC_SUBST(BOOST_SYSTEM_LIB) link_system="yes"; break],
-                                   [link_system="no"])
-                  done
-
-            fi
-            if test "x$ax_lib" = "x"; then
-                AC_MSG_ERROR(Could not find a version of the library!)
-            fi
-			if test "x$link_system" = "xno"; then
-				AC_MSG_ERROR(Could not link against $ax_lib !)
-			fi
-		fi
-
-		CPPFLAGS="$CPPFLAGS_SAVED"
-	LDFLAGS="$LDFLAGS_SAVED"
-	fi
-])
diff --git a/m4/ax_boost_unit_test_framework.m4 b/m4/ax_boost_unit_test_framework.m4
deleted file mode 100644
index 1115f55..0000000
--- a/m4/ax_boost_unit_test_framework.m4
+++ /dev/null
@@ -1,137 +0,0 @@
-# ================================================================================
-#  http://www.gnu.org/software/autoconf-archive/ax_boost_unit_test_framework.html
-# ================================================================================
-#
-# SYNOPSIS
-#
-#   AX_BOOST_UNIT_TEST_FRAMEWORK
-#
-# DESCRIPTION
-#
-#   Test for Unit_Test_Framework library from the Boost C++ libraries. The
-#   macro requires a preceding call to AX_BOOST_BASE. Further documentation
-#   is available at <http://randspringer.de/boost/index.html>.
-#
-#   This macro calls:
-#
-#     AC_SUBST(BOOST_UNIT_TEST_FRAMEWORK_LIB)
-#
-#   And sets:
-#
-#     HAVE_BOOST_UNIT_TEST_FRAMEWORK
-#
-# LICENSE
-#
-#   Copyright (c) 2008 Thomas Porschberg <thomas@randspringer.de>
-#
-#   Copying and distribution of this file, with or without modification, are
-#   permitted in any medium without royalty provided the copyright notice
-#   and this notice are preserved. This file is offered as-is, without any
-#   warranty.
-
-#serial 19
-
-AC_DEFUN([AX_BOOST_UNIT_TEST_FRAMEWORK],
-[
-	AC_ARG_WITH([boost-unit-test-framework],
-	AS_HELP_STRING([--with-boost-unit-test-framework@<:@=special-lib@:>@],
-                   [use the Unit_Test_Framework library from boost - it is possible to specify a certain library for the linker
-                        e.g. --with-boost-unit-test-framework=boost_unit_test_framework-gcc ]),
-        [
-        if test "$withval" = "no"; then
-			want_boost="no"
-        elif test "$withval" = "yes"; then
-            want_boost="yes"
-            ax_boost_user_unit_test_framework_lib=""
-        else
-		    want_boost="yes"
-		ax_boost_user_unit_test_framework_lib="$withval"
-		fi
-        ],
-        [want_boost="yes"]
-	)
-
-	if test "x$want_boost" = "xyes"; then
-        AC_REQUIRE([AC_PROG_CC])
-		CPPFLAGS_SAVED="$CPPFLAGS"
-		CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
-		export CPPFLAGS
-
-		LDFLAGS_SAVED="$LDFLAGS"
-		LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
-		export LDFLAGS
-
-        AC_CACHE_CHECK(whether the Boost::Unit_Test_Framework library is available,
-					   ax_cv_boost_unit_test_framework,
-        [AC_LANG_PUSH([C++])
-			 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <boost/test/unit_test.hpp>]],
-                                    [[using boost::unit_test::test_suite;
-							 test_suite* test= BOOST_TEST_SUITE( "Unit test example 1" ); return 0;]])],
-                   ax_cv_boost_unit_test_framework=yes, ax_cv_boost_unit_test_framework=no)
-         AC_LANG_POP([C++])
-		])
-		if test "x$ax_cv_boost_unit_test_framework" = "xyes"; then
-			AC_DEFINE(HAVE_BOOST_UNIT_TEST_FRAMEWORK,,[define if the Boost::Unit_Test_Framework library is available])
-            BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'`
-
-            if test "x$ax_boost_user_unit_test_framework_lib" = "x"; then
-			saved_ldflags="${LDFLAGS}"
-                for monitor_library in `ls $BOOSTLIBDIR/libboost_unit_test_framework*.so* $BOOSTLIBDIR/libboost_unit_test_framework*.dylib* $BOOSTLIBDIR/libboost_unit_test_framework*.a* 2>/dev/null` ; do
-                    if test -r $monitor_library ; then
-                       libextension=`echo $monitor_library | sed 's,.*/,,' | sed -e 's;^lib\(boost_unit_test_framework.*\)\.so.*$;\1;' -e 's;^lib\(boost_unit_test_framework.*\)\.dylib.*$;\1;' -e 's;^lib\(boost_unit_test_framework.*\)\.a.*$;\1;'`
-                       ax_lib=${libextension}
-                       link_unit_test_framework="yes"
-                    else
-                       link_unit_test_framework="no"
-                    fi
-
-			    if test "x$link_unit_test_framework" = "xyes"; then
-                      BOOST_UNIT_TEST_FRAMEWORK_LIB="-l$ax_lib"
-                      AC_SUBST(BOOST_UNIT_TEST_FRAMEWORK_LIB)
-					  break
-				    fi
-                done
-                if test "x$link_unit_test_framework" != "xyes"; then
-                for libextension in `ls $BOOSTLIBDIR/boost_unit_test_framework*.dll* $BOOSTLIBDIR/boost_unit_test_framework*.a* 2>/dev/null  | sed 's,.*/,,' | sed -e 's;^\(boost_unit_test_framework.*\)\.dll.*$;\1;' -e 's;^\(boost_unit_test_framework.*\)\.a.*$;\1;'` ; do
-                     ax_lib=${libextension}
-				    AC_CHECK_LIB($ax_lib, exit,
-                                 [BOOST_UNIT_TEST_FRAMEWORK_LIB="-l$ax_lib"; AC_SUBST(BOOST_UNIT_TEST_FRAMEWORK_LIB) link_unit_test_framework="yes"; break],
-                                 [link_unit_test_framework="no"])
-				done
-                fi
-            else
-                link_unit_test_framework="no"
-			saved_ldflags="${LDFLAGS}"
-                for ax_lib in boost_unit_test_framework-$ax_boost_user_unit_test_framework_lib $ax_boost_user_unit_test_framework_lib ; do
-                   if test "x$link_unit_test_framework" = "xyes"; then
-                      break;
-                   fi
-                   for unittest_library in `ls $BOOSTLIBDIR/lib${ax_lib}.so* $BOOSTLIBDIR/lib${ax_lib}.a* 2>/dev/null` ; do
-                   if test -r $unittest_library ; then
-                       libextension=`echo $unittest_library | sed 's,.*/,,' | sed -e 's;^lib\(boost_unit_test_framework.*\)\.so.*$;\1;' -e 's;^lib\(boost_unit_test_framework.*\)\.a*$;\1;'`
-                       ax_lib=${libextension}
-                       link_unit_test_framework="yes"
-                    else
-                       link_unit_test_framework="no"
-                    fi
-
-				if test "x$link_unit_test_framework" = "xyes"; then
-                        BOOST_UNIT_TEST_FRAMEWORK_LIB="-l$ax_lib"
-                        AC_SUBST(BOOST_UNIT_TEST_FRAMEWORK_LIB)
-					    break
-				    fi
-                  done
-               done
-            fi
-            if test "x$ax_lib" = "x"; then
-                AC_MSG_ERROR(Could not find a version of the library!)
-            fi
-			if test "x$link_unit_test_framework" != "xyes"; then
-				AC_MSG_ERROR(Could not link against $ax_lib !)
-			fi
-		fi
-
-		CPPFLAGS="$CPPFLAGS_SAVED"
-	LDFLAGS="$LDFLAGS_SAVED"
-	fi
-])
diff --git a/m4/ax_check_openssl.m4 b/m4/ax_check_openssl.m4
deleted file mode 100644
index a87c5a6..0000000
--- a/m4/ax_check_openssl.m4
+++ /dev/null
@@ -1,124 +0,0 @@
-# ===========================================================================
-#     http://www.gnu.org/software/autoconf-archive/ax_check_openssl.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-#   AX_CHECK_OPENSSL([action-if-found[, action-if-not-found]])
-#
-# DESCRIPTION
-#
-#   Look for OpenSSL in a number of default spots, or in a user-selected
-#   spot (via --with-openssl).  Sets
-#
-#     OPENSSL_INCLUDES to the include directives required
-#     OPENSSL_LIBS to the -l directives required
-#     OPENSSL_LDFLAGS to the -L or -R flags required
-#
-#   and calls ACTION-IF-FOUND or ACTION-IF-NOT-FOUND appropriately
-#
-#   This macro sets OPENSSL_INCLUDES such that source files should use the
-#   openssl/ directory in include directives:
-#
-#     #include <openssl/hmac.h>
-#
-# LICENSE
-#
-#   Copyright (c) 2009,2010 Zmanda Inc. <http://www.zmanda.com/>
-#   Copyright (c) 2009,2010 Dustin J. Mitchell <dustin@zmanda.com>
-#
-#   Copying and distribution of this file, with or without modification, are
-#   permitted in any medium without royalty provided the copyright notice
-#   and this notice are preserved. This file is offered as-is, without any
-#   warranty.
-
-#serial 8
-
-AU_ALIAS([CHECK_SSL], [AX_CHECK_OPENSSL])
-AC_DEFUN([AX_CHECK_OPENSSL], [
-    found=false
-    AC_ARG_WITH([openssl],
-        [AS_HELP_STRING([--with-openssl=DIR],
-            [root of the OpenSSL directory])],
-        [
-            case "$withval" in
-            "" | y | ye | yes | n | no)
-            AC_MSG_ERROR([Invalid --with-openssl value])
-              ;;
-            *) ssldirs="$withval"
-              ;;
-            esac
-        ], [
-            # if pkg-config is installed and openssl has installed a .pc file,
-            # then use that information and don't search ssldirs
-            AC_PATH_PROG([PKG_CONFIG], [pkg-config])
-            if test x"$PKG_CONFIG" != x""; then
-                OPENSSL_LDFLAGS=`$PKG_CONFIG openssl --libs-only-L 2>/dev/null`
-                if test $? = 0; then
-                    OPENSSL_LIBS=`$PKG_CONFIG openssl --libs-only-l 2>/dev/null`
-                    OPENSSL_INCLUDES=`$PKG_CONFIG openssl --cflags-only-I 2>/dev/null`
-                    found=true
-                fi
-            fi
-
-            # no such luck; use some default ssldirs
-            if ! $found; then
-                ssldirs="/usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /usr"
-            fi
-        ]
-        )
-
-
-    # note that we #include <openssl/foo.h>, so the OpenSSL headers have to be in
-    # an 'openssl' subdirectory
-
-    if ! $found; then
-        OPENSSL_INCLUDES=
-        for ssldir in $ssldirs; do
-            AC_MSG_CHECKING([for openssl/ssl.h in $ssldir])
-            if test -f "$ssldir/include/openssl/ssl.h"; then
-                OPENSSL_INCLUDES="-I$ssldir/include"
-                OPENSSL_LDFLAGS="-L$ssldir/lib"
-                OPENSSL_LIBS="-lssl -lcrypto"
-                found=true
-                AC_MSG_RESULT([yes])
-                break
-            else
-                AC_MSG_RESULT([no])
-            fi
-        done
-
-        # if the file wasn't found, well, go ahead and try the link anyway -- maybe
-        # it will just work!
-    fi
-
-    # try the preprocessor and linker with our new flags,
-    # being careful not to pollute the global LIBS, LDFLAGS, and CPPFLAGS
-
-    AC_MSG_CHECKING([whether compiling and linking against OpenSSL works])
-    echo "Trying link with OPENSSL_LDFLAGS=$OPENSSL_LDFLAGS;" \
-        "OPENSSL_LIBS=$OPENSSL_LIBS; OPENSSL_INCLUDES=$OPENSSL_INCLUDES" >&AS_MESSAGE_LOG_FD
-
-    save_LIBS="$LIBS"
-    save_LDFLAGS="$LDFLAGS"
-    save_CPPFLAGS="$CPPFLAGS"
-    LDFLAGS="$LDFLAGS $OPENSSL_LDFLAGS"
-    LIBS="$OPENSSL_LIBS $LIBS"
-    CPPFLAGS="$OPENSSL_INCLUDES $CPPFLAGS"
-    AC_LINK_IFELSE(
-        [AC_LANG_PROGRAM([#include <openssl/ssl.h>], [SSL_new(NULL)])],
-        [
-            AC_MSG_RESULT([yes])
-            $1
-        ], [
-            AC_MSG_RESULT([no])
-            $2
-        ])
-    CPPFLAGS="$save_CPPFLAGS"
-    LDFLAGS="$save_LDFLAGS"
-    LIBS="$save_LIBS"
-
-    AC_SUBST([OPENSSL_INCLUDES])
-    AC_SUBST([OPENSSL_LIBS])
-    AC_SUBST([OPENSSL_LDFLAGS])
-])
diff --git a/m4/ax_cxx_compile_stdcxx_11.m4 b/m4/ax_cxx_compile_stdcxx_11.m4
deleted file mode 100644
index 2d40ac1..0000000
--- a/m4/ax_cxx_compile_stdcxx_11.m4
+++ /dev/null
@@ -1,148 +0,0 @@
-# ============================================================================
-#  http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx_11.html
-# ============================================================================
-#
-# SYNOPSIS
-#
-#   AX_CXX_COMPILE_STDCXX_11([ext|noext],[mandatory|optional])
-#
-# DESCRIPTION
-#
-#   Check for baseline language coverage in the compiler for the C++11
-#   standard; if necessary, add switches to CXXFLAGS to enable support.
-#
-#   The first argument, if specified, indicates whether you insist on an
-#   extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g.
-#   -std=c++11).  If neither is specified, you get whatever works, with
-#   preference for an extended mode.
-#
-#   The second argument, if specified 'mandatory' or if left unspecified,
-#   indicates that baseline C++11 support is required and that the macro
-#   should error out if no mode with that support is found.  If specified
-#   'optional', then configuration proceeds regardless, after defining
-#   HAVE_CXX11 if and only if a supporting mode is found.
-#
-# LICENSE
-#
-#   Copyright (c) 2008 Benjamin Kosnik <bkoz@redhat.com>
-#   Copyright (c) 2012 Zack Weinberg <zackw@panix.com>
-#   Copyright (c) 2013 Roy Stogner <roystgnr@ices.utexas.edu>
-#
-#   Copying and distribution of this file, with or without modification, are
-#   permitted in any medium without royalty provided the copyright notice
-#   and this notice are preserved. This file is offered as-is, without any
-#   warranty.
-
-#serial 3
-
-m4_define([_AX_CXX_COMPILE_STDCXX_11_testbody], [
-  template <typename T>
-    struct check
-    {
-      static_assert(sizeof(int) <= sizeof(T), "not big enough");
-    };
-
-    typedef check<check<bool>> right_angle_brackets;
-
-    int a;
-    decltype(a) b;
-
-    typedef check<int> check_type;
-    check_type c;
-    check_type&& cr = static_cast<check_type&&>(c);
-
-    auto d = a;
-])
-
-AC_DEFUN([AX_CXX_COMPILE_STDCXX_11], [dnl
-  AC_ARG_WITH([c++11],
-    AS_HELP_STRING(
-        [--with-c++11=@<:@ARG@:>@],
-        [use C++11 when available @<:@default=no@:>@]
-    ),
-    [
-    if test "$withval" = "yes"; then
-        WANT_CXX11="yes"
-    fi
-    ],
-    [WANT_CXX11="no"]
-  )
-
-  if test "x$WANT_CXX11" = "xyes"; then
-    m4_if([$1], [], [],
-          [$1], [ext], [],
-          [$1], [noext], [],
-          [m4_fatal([invalid argument `$1' to AX_CXX_COMPILE_STDCXX_11])])dnl
-    m4_if([$2], [], [ax_cxx_compile_cxx11_required=true],
-          [$2], [mandatory], [ax_cxx_compile_cxx11_required=true],
-          [$2], [optional], [ax_cxx_compile_cxx11_required=false],
-          [m4_fatal([invalid second argument `$2' to AX_CXX_COMPILE_STDCXX_11])])dnl
-    AC_LANG_PUSH([C++])dnl
-    ac_success=no
-    AC_CACHE_CHECK(whether $CXX supports C++11 features by default,
-    ax_cv_cxx_compile_cxx11,
-    [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_11_testbody])],
-      [ax_cv_cxx_compile_cxx11=yes],
-      [ax_cv_cxx_compile_cxx11=no])])
-    if test x$ax_cv_cxx_compile_cxx11 = xyes; then
-      ac_success=yes
-    fi
-    
-    m4_if([$1], [noext], [], [dnl
-    if test x$ac_success = xno; then
-      for switch in -std=gnu++11 -std=gnu++0x; do
-        cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx11_$switch])
-        AC_CACHE_CHECK(whether $CXX supports C++11 features with $switch,
-                       $cachevar,
-          [ac_save_CXXFLAGS="$CXXFLAGS"
-           CXXFLAGS="$CXXFLAGS $switch"
-           AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_11_testbody])],
-            [eval $cachevar=yes],
-            [eval $cachevar=no])
-           CXXFLAGS="$ac_save_CXXFLAGS"])
-        if eval test x\$$cachevar = xyes; then
-          CXXFLAGS="$CXXFLAGS $switch"
-          ac_success=yes
-          break
-        fi
-      done
-    fi])
-    
-    m4_if([$1], [ext], [], [dnl
-    if test x$ac_success = xno; then
-      for switch in -std=c++11 -std=c++0x; do
-        cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx11_$switch])
-        AC_CACHE_CHECK(whether $CXX supports C++11 features with $switch,
-                       $cachevar,
-          [ac_save_CXXFLAGS="$CXXFLAGS"
-           CXXFLAGS="$CXXFLAGS $switch"
-           AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_11_testbody])],
-            [eval $cachevar=yes],
-            [eval $cachevar=no])
-           CXXFLAGS="$ac_save_CXXFLAGS"])
-        if eval test x\$$cachevar = xyes; then
-          CXXFLAGS="$CXXFLAGS $switch"
-          ac_success=yes
-          break
-        fi
-      done
-    fi])
-    AC_LANG_POP([C++])
-    if test x$ax_cxx_compile_cxx11_required = xtrue; then
-      if test x$ac_success = xno; then
-        AC_MSG_ERROR([*** A compiler with support for C++11 language features is required.])
-      fi
-    else
-      if test x$ac_success = xno; then
-        HAVE_CXX11=0
-        AC_MSG_NOTICE([No compiler with C++11 support was found])
-      else
-        HAVE_CXX11=1
-        AC_DEFINE(HAVE_CXX11,1,
-                  [define if the compiler supports basic C++11 syntax])
-      fi
-    
-      AC_SUBST(HAVE_CXX11)
-    fi
-  fi
-])
diff --git a/m4/ax_lib_cryptopp.m4 b/m4/ax_lib_cryptopp.m4
deleted file mode 100644
index f4f51fd..0000000
--- a/m4/ax_lib_cryptopp.m4
+++ /dev/null
@@ -1,101 +0,0 @@
-# SYNOPSIS
-#
-#   AX_LIB_CRYPTOPP([ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND])
-#
-# DESCRIPTION
-#
-#   Test for the Crypto++ library
-#
-#   If no intallation prefix to the installed Crypto++ library is given the
-#   macro searches under /usr, /usr/local, and /opt.
-#
-#   This macro calls:
-#
-#     AC_SUBST(CRYPTOPP_INCLUDES)
-#     AC_SUBST(CRYPTOPP_LDFLAGS)
-#     AC_SUBST(CRYPTOPP_LIBS)
-#
-#   And sets:
-#
-#     HAVE_CRYPTOPP
-
-AC_DEFUN([AX_LIB_CRYPTOPP],
-[
-    AC_ARG_WITH([cryptopp],
-        AS_HELP_STRING(
-            [--with-cryptopp=@<:@ARG@:>@],
-            [use Crypto++ library @<:@default=yes@:>@, optionally specify the prefix for the library]
-        ),
-        [
-        if test "$withval" = "no"; then
-            WANT_CRYPTOPP="no"
-        elif test "$withval" = "yes"; then
-            WANT_CRYPTOPP="yes"
-            ac_cryptopp_path=""
-        else
-            WANT_CRYPTOPP="yes"
-            ac_cryptopp_path="$withval"
-        fi
-        ],
-        [WANT_CRYPTOPP="yes"]
-    )
-
-    CRYPTOPP_CFLAGS=""
-    CRYPTOPP_LDFLAGS=""
-    CRYPTOPP_LIBS=""
-
-    if test "x$WANT_CRYPTOPP" = "xyes"; then
-
-        AC_MSG_CHECKING([for Crypto++ library])
-
-        ac_cryptopp_header="cryptopp/cryptlib.h"
-        ac_cryptopp_libs="-lcryptopp"
-
-        if test "$ac_cryptopp_path" != ""; then
-            ac_cryptopp_ldflags="-L$ac_cryptopp_path/lib"
-            ac_cryptopp_cppflags="-I$ac_cryptopp_path/include"
-        else
-            for ac_cryptopp_path_tmp in /usr /usr/local /opt ; do
-                if test -f "$ac_cryptopp_path_tmp/include/$ac_cryptopp_header" \
-                    && test -r "$ac_cryptopp_path_tmp/include/$ac_cryptopp_header"; then
-                    ac_cryptopp_path=$ac_cryptopp_path_tmp
-                    ac_cryptopp_cppflags="-I$ac_cryptopp_path_tmp/include"
-                    ac_cryptopp_ldflags="-L$ac_cryptopp_path_tmp/lib"
-                    break;
-                fi
-            done
-        fi
-
-        CRYPTOPP_INCLUDES="$ac_cryptopp_cppflags"
-        CRYPTOPP_LDFLAGS="$ac_cryptopp_ldflags"
-        CRYPTOPP_LIBS="$ac_cryptopp_libs"
-
-        save_LIBS="$LIBS"
-        save_LDFLAGS="$LDFLAGS"
-        save_CPPFLAGS="$CPPFLAGS"
-
-        LDFLAGS="$LDFLAGS $CRYPTOPP_LDFLAGS"
-        LIBS="$CRYPTOPP_LIBS $LIBS"
-        CPPFLAGS="$CRYPTOPP_INCLUDES $CPPFLAGS"
-        AC_LANG_PUSH(C++)
-        AC_LINK_IFELSE(
-            [AC_LANG_PROGRAM([#include <cryptopp/cryptlib.h>], [])],
-            [
-                AC_MSG_RESULT([yes])
-                $1
-            ], [
-                AC_MSG_RESULT([no])
-                $2
-            ])
-        AC_LANG_POP([C++])
-        CPPFLAGS="$save_CPPFLAGS"
-        LDFLAGS="$save_LDFLAGS"
-        LIBS="$save_LIBS"
-
-        AC_SUBST(CRYPTOPP_INCLUDES)
-        AC_SUBST(CRYPTOPP_LDFLAGS)
-        AC_SUBST(CRYPTOPP_LIBS)
-
-        AC_DEFINE([HAVE_CRYPTOPP], [], [Have the Crypto++ library])
-    fi
-])
diff --git a/m4/ax_lib_sqlite3.m4 b/m4/ax_lib_sqlite3.m4
deleted file mode 100644
index 7771716..0000000
--- a/m4/ax_lib_sqlite3.m4
+++ /dev/null
@@ -1,156 +0,0 @@
-# ===========================================================================
-#      http://www.gnu.org/software/autoconf-archive/ax_lib_sqlite3.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-#   AX_LIB_SQLITE3([MINIMUM-VERSION])
-#
-# DESCRIPTION
-#
-#   Test for the SQLite 3 library of a particular version (or newer)
-#
-#   This macro takes only one optional argument, required version of SQLite
-#   3 library. If required version is not passed, 3.0.0 is used in the test
-#   of existance of SQLite 3.
-#
-#   If no intallation prefix to the installed SQLite library is given the
-#   macro searches under /usr, /usr/local, and /opt.
-#
-#   This macro calls:
-#
-#     AC_SUBST(SQLITE3_CFLAGS)
-#     AC_SUBST(SQLITE3_LDFLAGS)
-#     AC_SUBST(SQLITE3_VERSION)
-#
-#   And sets:
-#
-#     HAVE_SQLITE3
-#
-# LICENSE
-#
-#   Copyright (c) 2008 Mateusz Loskot <mateusz@loskot.net>
-#
-#   Copying and distribution of this file, with or without modification, are
-#   permitted in any medium without royalty provided the copyright notice
-#   and this notice are preserved. This file is offered as-is, without any
-#   warranty.
-
-#serial 14
-
-AC_DEFUN([AX_LIB_SQLITE3],
-[
-    AC_ARG_WITH([sqlite3],
-        AS_HELP_STRING(
-            [--with-sqlite3=@<:@ARG@:>@],
-            [use SQLite 3 library @<:@default=yes@:>@, optionally specify the prefix for sqlite3 library]
-        ),
-        [
-        if test "$withval" = "no"; then
-            WANT_SQLITE3="no"
-        elif test "$withval" = "yes"; then
-            WANT_SQLITE3="yes"
-            ac_sqlite3_path=""
-        else
-            WANT_SQLITE3="yes"
-            ac_sqlite3_path="$withval"
-        fi
-        ],
-        [WANT_SQLITE3="yes"]
-    )
-
-    SQLITE3_CFLAGS=""
-    SQLITE3_LDFLAGS=""
-    SQLITE3_VERSION=""
-
-    if test "x$WANT_SQLITE3" = "xyes"; then
-
-        ac_sqlite3_header="sqlite3.h"
-
-        sqlite3_version_req=ifelse([$1], [], [3.0.0], [$1])
-        sqlite3_version_req_shorten=`expr $sqlite3_version_req : '\([[0-9]]*\.[[0-9]]*\)'`
-        sqlite3_version_req_major=`expr $sqlite3_version_req : '\([[0-9]]*\)'`
-        sqlite3_version_req_minor=`expr $sqlite3_version_req : '[[0-9]]*\.\([[0-9]]*\)'`
-        sqlite3_version_req_micro=`expr $sqlite3_version_req : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'`
-        if test "x$sqlite3_version_req_micro" = "x" ; then
-            sqlite3_version_req_micro="0"
-        fi
-
-        sqlite3_version_req_number=`expr $sqlite3_version_req_major \* 1000000 \
-                                   \+ $sqlite3_version_req_minor \* 1000 \
-                                   \+ $sqlite3_version_req_micro`
-
-        AC_MSG_CHECKING([for SQLite3 library >= $sqlite3_version_req])
-
-        if test "$ac_sqlite3_path" != ""; then
-            ac_sqlite3_ldflags="-L$ac_sqlite3_path/lib"
-            ac_sqlite3_cppflags="-I$ac_sqlite3_path/include"
-        else
-            for ac_sqlite3_path_tmp in /usr /usr/local /opt ; do
-                if test -f "$ac_sqlite3_path_tmp/include/$ac_sqlite3_header" \
-                    && test -r "$ac_sqlite3_path_tmp/include/$ac_sqlite3_header"; then
-                    ac_sqlite3_path=$ac_sqlite3_path_tmp
-                    ac_sqlite3_cppflags="-I$ac_sqlite3_path_tmp/include"
-                    ac_sqlite3_ldflags="-L$ac_sqlite3_path_tmp/lib"
-                    break;
-                fi
-            done
-        fi
-
-        ac_sqlite3_ldflags="$ac_sqlite3_ldflags -lsqlite3"
-
-        saved_CPPFLAGS="$CPPFLAGS"
-        CPPFLAGS="$CPPFLAGS $ac_sqlite3_cppflags"
-
-        AC_LANG_PUSH(C)
-        AC_COMPILE_IFELSE(
-            [
-            AC_LANG_PROGRAM([[@%:@include <sqlite3.h>]],
-                [[
-#if (SQLITE_VERSION_NUMBER >= $sqlite3_version_req_number)
-/* Everything is okay */
-#else
-#  error SQLite version is too old
-#endif
-                ]]
-            )
-            ],
-            [
-            AC_MSG_RESULT([yes])
-            success="yes"
-            ],
-            [
-            AC_MSG_RESULT([not found])
-            success="no"
-            ]
-        )
-        AC_LANG_POP(C)
-
-        CPPFLAGS="$saved_CPPFLAGS"
-
-        if test "$success" = "yes"; then
-
-            SQLITE3_CFLAGS="$ac_sqlite3_cppflags"
-            SQLITE3_LDFLAGS="$ac_sqlite3_ldflags"
-
-            ac_sqlite3_header_path="$ac_sqlite3_path/include/$ac_sqlite3_header"
-
-            dnl Retrieve SQLite release version
-            if test "x$ac_sqlite3_header_path" != "x"; then
-                ac_sqlite3_version=`cat $ac_sqlite3_header_path \
-                    | grep '#define.*SQLITE_VERSION.*\"' | sed -e 's/.* "//' \
-                        | sed -e 's/"//'`
-                if test $ac_sqlite3_version != ""; then
-                    SQLITE3_VERSION=$ac_sqlite3_version
-                else
-                    AC_MSG_WARN([Cannot find SQLITE_VERSION macro in sqlite3.h header to retrieve SQLite version!])
-                fi
-            fi
-
-            AC_SUBST(SQLITE3_CFLAGS)
-            AC_SUBST(SQLITE3_LDFLAGS)
-            AC_SUBST(SQLITE3_VERSION)
-            AC_DEFINE([HAVE_SQLITE3], [], [Have the SQLITE3 library])
-        fi
-    fi
-])
diff --git a/m4/ax_prefix_config_h.m4 b/m4/ax_prefix_config_h.m4
deleted file mode 100644
index 43a3906..0000000
--- a/m4/ax_prefix_config_h.m4
+++ /dev/null
@@ -1,209 +0,0 @@
-# ===========================================================================
-#    http://www.gnu.org/software/autoconf-archive/ax_prefix_config_h.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-#   AX_PREFIX_CONFIG_H [(OUTPUT-HEADER [,PREFIX [,ORIG-HEADER]])]
-#
-# DESCRIPTION
-#
-#   This is a new variant from ac_prefix_config_ this one will use a
-#   lowercase-prefix if the config-define was starting with a
-#   lowercase-char, e.g. "#define const", "#define restrict", or "#define
-#   off_t", (and this one can live in another directory, e.g.
-#   testpkg/config.h therefore I decided to move the output-header to be the
-#   first arg)
-#
-#   takes the usual config.h generated header file; looks for each of the
-#   generated "#define SOMEDEF" lines, and prefixes the defined name (ie.
-#   makes it "#define PREFIX_SOMEDEF". The result is written to the output
-#   config.header file. The PREFIX is converted to uppercase for the
-#   conversions.
-#
-#   Defaults:
-#
-#     OUTPUT-HEADER = $PACKAGE-config.h
-#     PREFIX = $PACKAGE
-#     ORIG-HEADER, from AM_CONFIG_HEADER(config.h)
-#
-#   Your configure.ac script should contain both macros in this order, and
-#   unlike the earlier variations of this prefix-macro it is okay to place
-#   the AX_PREFIX_CONFIG_H call before the AC_OUTPUT invokation.
-#
-#   Example:
-#
-#     AC_INIT(config.h.in)        # config.h.in as created by "autoheader"
-#     AM_INIT_AUTOMAKE(testpkg, 0.1.1)    # makes #undef VERSION and PACKAGE
-#     AM_CONFIG_HEADER(config.h)          # prep config.h from config.h.in
-#     AX_PREFIX_CONFIG_H(mylib/_config.h) # prep mylib/_config.h from it..
-#     AC_MEMORY_H                         # makes "#undef NEED_MEMORY_H"
-#     AC_C_CONST_H                        # makes "#undef const"
-#     AC_OUTPUT(Makefile)                 # creates the "config.h" now
-#                                         # and also mylib/_config.h
-#
-#   if the argument to AX_PREFIX_CONFIG_H would have been omitted then the
-#   default outputfile would have been called simply "testpkg-config.h", but
-#   even under the name "mylib/_config.h" it contains prefix-defines like
-#
-#     #ifndef TESTPKG_VERSION
-#     #define TESTPKG_VERSION "0.1.1"
-#     #endif
-#     #ifndef TESTPKG_NEED_MEMORY_H
-#     #define TESTPKG_NEED_MEMORY_H 1
-#     #endif
-#     #ifndef _testpkg_const
-#     #define _testpkg_const _const
-#     #endif
-#
-#   and this "mylib/_config.h" can be installed along with other
-#   header-files, which is most convenient when creating a shared library
-#   (that has some headers) where some functionality is dependent on the
-#   OS-features detected at compile-time. No need to invent some
-#   "mylib-confdefs.h.in" manually. :-)
-#
-#   Note that some AC_DEFINEs that end up in the config.h file are actually
-#   self-referential - e.g. AC_C_INLINE, AC_C_CONST, and the AC_TYPE_OFF_T
-#   say that they "will define inline|const|off_t if the system does not do
-#   it by itself". You might want to clean up about these - consider an
-#   extra mylib/conf.h that reads something like:
-#
-#     #include <mylib/_config.h>
-#     #ifndef _testpkg_const
-#     #define _testpkg_const const
-#     #endif
-#
-#   and then start using _testpkg_const in the header files. That is also a
-#   good thing to differentiate whether some library-user has starting to
-#   take up with a different compiler, so perhaps it could read something
-#   like this:
-#
-#     #ifdef _MSC_VER
-#     #include <mylib/_msvc.h>
-#     #else
-#     #include <mylib/_config.h>
-#     #endif
-#     #ifndef _testpkg_const
-#     #define _testpkg_const const
-#     #endif
-#
-# LICENSE
-#
-#   Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
-#   Copyright (c) 2008 Marten Svantesson
-#   Copyright (c) 2008 Gerald Point <Gerald.Point@labri.fr>
-#
-#   This program is free software; you can redistribute it and/or modify it
-#   under the terms of the GNU General Public License as published by the
-#   Free Software Foundation; either version 3 of the License, or (at your
-#   option) any later version.
-#
-#   This program is distributed in the hope that it will be useful, but
-#   WITHOUT ANY WARRANTY; without even the implied warranty of
-#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-#   Public License for more details.
-#
-#   You should have received a copy of the GNU General Public License along
-#   with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-#   As a special exception, the respective Autoconf Macro's copyright owner
-#   gives unlimited permission to copy, distribute and modify the configure
-#   scripts that are the output of Autoconf when processing the Macro. You
-#   need not follow the terms of the GNU General Public License when using
-#   or distributing such scripts, even though portions of the text of the
-#   Macro appear in them. The GNU General Public License (GPL) does govern
-#   all other use of the material that constitutes the Autoconf Macro.
-#
-#   This special exception to the GPL applies to versions of the Autoconf
-#   Macro released by the Autoconf Archive. When you make and distribute a
-#   modified version of the Autoconf Macro, you may extend this special
-#   exception to the GPL to apply to your modified version as well.
-
-#serial 11
-
-AC_DEFUN([AX_PREFIX_CONFIG_H],[dnl
-AC_PREREQ([2.62])
-AC_BEFORE([AC_CONFIG_HEADERS],[$0])dnl
-AC_CONFIG_COMMANDS([ifelse($1,,$PACKAGE-config.h,$1)],[dnl
-AS_VAR_PUSHDEF([_OUT],[ac_prefix_conf_OUT])dnl
-AS_VAR_PUSHDEF([_DEF],[ac_prefix_conf_DEF])dnl
-AS_VAR_PUSHDEF([_PKG],[ac_prefix_conf_PKG])dnl
-AS_VAR_PUSHDEF([_LOW],[ac_prefix_conf_LOW])dnl
-AS_VAR_PUSHDEF([_UPP],[ac_prefix_conf_UPP])dnl
-AS_VAR_PUSHDEF([_INP],[ac_prefix_conf_INP])dnl
-m4_pushdef([_script],[conftest.prefix])dnl
-m4_pushdef([_symbol],[m4_cr_Letters[]m4_cr_digits[]_])dnl
-_OUT=`echo ifelse($1, , $PACKAGE-config.h, $1)`
-_DEF=`echo _$_OUT | sed -e "y:m4_cr_letters:m4_cr_LETTERS[]:" -e "s/@<:@^m4_cr_Letters@:>@/_/g"`
-_PKG=`echo ifelse($2, , $PACKAGE, $2)`
-_LOW=`echo _$_PKG | sed -e "y:m4_cr_LETTERS-:m4_cr_letters[]_:"`
-_UPP=`echo $_PKG | sed -e "y:m4_cr_letters-:m4_cr_LETTERS[]_:"  -e "/^@<:@m4_cr_digits@:>@/s/^/_/"`
-_INP=`echo "ifelse($3,,,$3)" | sed -e 's/ *//'`
-if test ".$_INP" = "."; then
-   for ac_file in : $CONFIG_HEADERS; do test "_$ac_file" = _: && continue
-     case "$ac_file" in
-        *.h) _INP=$ac_file ;;
-        *)
-     esac
-     test ".$_INP" != "." && break
-   done
-fi
-if test ".$_INP" = "."; then
-   case "$_OUT" in
-      */*) _INP=`basename "$_OUT"`
-      ;;
-      *-*) _INP=`echo "$_OUT" | sed -e "s/@<:@_symbol@:>@*-//"`
-      ;;
-      *) _INP=config.h
-      ;;
-   esac
-fi
-if test -z "$_PKG" ; then
-   AC_MSG_ERROR([no prefix for _PREFIX_PKG_CONFIG_H])
-else
-  if test ! -f "$_INP" ; then if test -f "$srcdir/$_INP" ; then
-     _INP="$srcdir/$_INP"
-  fi fi
-  AC_MSG_NOTICE(creating $_OUT - prefix $_UPP for $_INP defines)
-  if test -f $_INP ; then
-    AS_ECHO(["s/^@%:@undef  *\\(@<:@m4_cr_LETTERS[]_@:>@\\)/@%:@undef $_UPP""_\\1/"]) > _script
-    AS_ECHO(["s/^@%:@undef  *\\(@<:@m4_cr_letters@:>@\\)/@%:@undef $_LOW""_\\1/"]) >> _script
-    AS_ECHO(["s/^@%:@def[]ine  *\\(@<:@m4_cr_LETTERS[]_@:>@@<:@_symbol@:>@*\\)\\(.*\\)/@%:@ifndef $_UPP""_\\1\\"]) >> _script
-    AS_ECHO(["@%:@def[]ine $_UPP""_\\1\\2\\"]) >> _script
-    AS_ECHO(["@%:@endif/"]) >> _script
-    AS_ECHO(["s/^@%:@def[]ine  *\\(@<:@m4_cr_letters@:>@@<:@_symbol@:>@*\\)\\(.*\\)/@%:@ifndef $_LOW""_\\1\\"]) >> _script
-    AS_ECHO(["@%:@define $_LOW""_\\1\\2\\"]) >> _script
-    AS_ECHO(["@%:@endif/"]) >> _script
-    # now executing _script on _DEF input to create _OUT output file
-    echo "@%:@ifndef $_DEF"      >$tmp/pconfig.h
-    echo "@%:@def[]ine $_DEF 1" >>$tmp/pconfig.h
-    echo ' ' >>$tmp/pconfig.h
-    echo /'*' $_OUT. Generated automatically at end of configure. '*'/ >>$tmp/pconfig.h
-
-    sed -f _script $_INP >>$tmp/pconfig.h
-    echo ' ' >>$tmp/pconfig.h
-    echo '/* once:' $_DEF '*/' >>$tmp/pconfig.h
-    echo "@%:@endif" >>$tmp/pconfig.h
-    if cmp -s $_OUT $tmp/pconfig.h 2>/dev/null; then
-      AC_MSG_NOTICE([$_OUT is unchanged])
-    else
-      ac_dir=`AS_DIRNAME(["$_OUT"])`
-      AS_MKDIR_P(["$ac_dir"])
-      rm -f "$_OUT"
-      mv $tmp/pconfig.h "$_OUT"
-    fi
-    cp _script _configs.sed
-  else
-    AC_MSG_ERROR([input file $_INP does not exist - skip generating $_OUT])
-  fi
-  rm -f conftest.*
-fi
-m4_popdef([_symbol])dnl
-m4_popdef([_script])dnl
-AS_VAR_POPDEF([_INP])dnl
-AS_VAR_POPDEF([_UPP])dnl
-AS_VAR_POPDEF([_LOW])dnl
-AS_VAR_POPDEF([_PKG])dnl
-AS_VAR_POPDEF([_DEF])dnl
-AS_VAR_POPDEF([_OUT])dnl
-],[PACKAGE="$PACKAGE"])])
diff --git a/m4/ax_prog_doxygen.m4 b/m4/ax_prog_doxygen.m4
deleted file mode 100644
index 44b22b0..0000000
--- a/m4/ax_prog_doxygen.m4
+++ /dev/null
@@ -1,532 +0,0 @@
-# ===========================================================================
-#      http://www.gnu.org/software/autoconf-archive/ax_prog_doxygen.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-#   DX_INIT_DOXYGEN(PROJECT-NAME, DOXYFILE-PATH, [OUTPUT-DIR])
-#   DX_DOXYGEN_FEATURE(ON|OFF)
-#   DX_DOT_FEATURE(ON|OFF)
-#   DX_HTML_FEATURE(ON|OFF)
-#   DX_CHM_FEATURE(ON|OFF)
-#   DX_CHI_FEATURE(ON|OFF)
-#   DX_MAN_FEATURE(ON|OFF)
-#   DX_RTF_FEATURE(ON|OFF)
-#   DX_XML_FEATURE(ON|OFF)
-#   DX_PDF_FEATURE(ON|OFF)
-#   DX_PS_FEATURE(ON|OFF)
-#
-# DESCRIPTION
-#
-#   The DX_*_FEATURE macros control the default setting for the given
-#   Doxygen feature. Supported features are 'DOXYGEN' itself, 'DOT' for
-#   generating graphics, 'HTML' for plain HTML, 'CHM' for compressed HTML
-#   help (for MS users), 'CHI' for generating a seperate .chi file by the
-#   .chm file, and 'MAN', 'RTF', 'XML', 'PDF' and 'PS' for the appropriate
-#   output formats. The environment variable DOXYGEN_PAPER_SIZE may be
-#   specified to override the default 'a4wide' paper size.
-#
-#   By default, HTML, PDF and PS documentation is generated as this seems to
-#   be the most popular and portable combination. MAN pages created by
-#   Doxygen are usually problematic, though by picking an appropriate subset
-#   and doing some massaging they might be better than nothing. CHM and RTF
-#   are specific for MS (note that you can't generate both HTML and CHM at
-#   the same time). The XML is rather useless unless you apply specialized
-#   post-processing to it.
-#
-#   The macros mainly control the default state of the feature. The use can
-#   override the default by specifying --enable or --disable. The macros
-#   ensure that contradictory flags are not given (e.g.,
-#   --enable-doxygen-html and --enable-doxygen-chm,
-#   --enable-doxygen-anything with --disable-doxygen, etc.) Finally, each
-#   feature will be automatically disabled (with a warning) if the required
-#   programs are missing.
-#
-#   Once all the feature defaults have been specified, call DX_INIT_DOXYGEN
-#   with the following parameters: a one-word name for the project for use
-#   as a filename base etc., an optional configuration file name (the
-#   default is 'Doxyfile', the same as Doxygen's default), and an optional
-#   output directory name (the default is 'doxygen-doc').
-#
-#   Automake Support
-#
-#   The following is a template aminclude.am file for use with Automake.
-#   Make targets and variables values are controlled by the various
-#   DX_COND_* conditionals set by autoconf.
-#
-#   The provided targets are:
-#
-#     doxygen-doc: Generate all doxygen documentation.
-#
-#     doxygen-run: Run doxygen, which will generate some of the
-#                  documentation (HTML, CHM, CHI, MAN, RTF, XML)
-#                  but will not do the post processing required
-#                  for the rest of it (PS, PDF, and some MAN).
-#
-#     doxygen-man: Rename some doxygen generated man pages.
-#
-#     doxygen-ps:  Generate doxygen PostScript documentation.
-#
-#     doxygen-pdf: Generate doxygen PDF documentation.
-#
-#   Note that by default these are not integrated into the automake targets.
-#   If doxygen is used to generate man pages, you can achieve this
-#   integration by setting man3_MANS to the list of man pages generated and
-#   then adding the dependency:
-#
-#     $(man3_MANS): doxygen-doc
-#
-#   This will cause make to run doxygen and generate all the documentation.
-#
-#   The following variable is intended for use in Makefile.am:
-#
-#     DX_CLEANFILES = everything to clean.
-#
-#   Then add this variable to MOSTLYCLEANFILES.
-#
-#     ----- begin aminclude.am -------------------------------------
-#
-#     ## --------------------------------- ##
-#     ## Format-independent Doxygen rules. ##
-#     ## --------------------------------- ##
-#
-#     if DX_COND_doc
-#
-#     ## ------------------------------- ##
-#     ## Rules specific for HTML output. ##
-#     ## ------------------------------- ##
-#
-#     if DX_COND_html
-#
-#     DX_CLEAN_HTML = @DX_DOCDIR@/html
-#
-#     endif DX_COND_html
-#
-#     ## ------------------------------ ##
-#     ## Rules specific for CHM output. ##
-#     ## ------------------------------ ##
-#
-#     if DX_COND_chm
-#
-#     DX_CLEAN_CHM = @DX_DOCDIR@/chm
-#
-#     if DX_COND_chi
-#
-#     DX_CLEAN_CHI = @DX_DOCDIR@/@PACKAGE@.chi
-#
-#     endif DX_COND_chi
-#
-#     endif DX_COND_chm
-#
-#     ## ------------------------------ ##
-#     ## Rules specific for MAN output. ##
-#     ## ------------------------------ ##
-#
-#     if DX_COND_man
-#
-#     DX_CLEAN_MAN = @DX_DOCDIR@/man
-#
-#     endif DX_COND_man
-#
-#     ## ------------------------------ ##
-#     ## Rules specific for RTF output. ##
-#     ## ------------------------------ ##
-#
-#     if DX_COND_rtf
-#
-#     DX_CLEAN_RTF = @DX_DOCDIR@/rtf
-#
-#     endif DX_COND_rtf
-#
-#     ## ------------------------------ ##
-#     ## Rules specific for XML output. ##
-#     ## ------------------------------ ##
-#
-#     if DX_COND_xml
-#
-#     DX_CLEAN_XML = @DX_DOCDIR@/xml
-#
-#     endif DX_COND_xml
-#
-#     ## ----------------------------- ##
-#     ## Rules specific for PS output. ##
-#     ## ----------------------------- ##
-#
-#     if DX_COND_ps
-#
-#     DX_CLEAN_PS = @DX_DOCDIR@/@PACKAGE@.ps
-#
-#     DX_PS_GOAL = doxygen-ps
-#
-#     doxygen-ps: @DX_DOCDIR@/@PACKAGE@.ps
-#
-#     @DX_DOCDIR@/@PACKAGE@.ps: @DX_DOCDIR@/@PACKAGE@.tag
-#         cd @DX_DOCDIR@/latex; \
-#         rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \
-#         $(DX_LATEX) refman.tex; \
-#         $(MAKEINDEX_PATH) refman.idx; \
-#         $(DX_LATEX) refman.tex; \
-#         countdown=5; \
-#         while $(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' \
-#                           refman.log > /dev/null 2>&1 \
-#            && test $$countdown -gt 0; do \
-#             $(DX_LATEX) refman.tex; \
-#             countdown=`expr $$countdown - 1`; \
-#         done; \
-#         $(DX_DVIPS) -o ../@PACKAGE@.ps refman.dvi
-#
-#     endif DX_COND_ps
-#
-#     ## ------------------------------ ##
-#     ## Rules specific for PDF output. ##
-#     ## ------------------------------ ##
-#
-#     if DX_COND_pdf
-#
-#     DX_CLEAN_PDF = @DX_DOCDIR@/@PACKAGE@.pdf
-#
-#     DX_PDF_GOAL = doxygen-pdf
-#
-#     doxygen-pdf: @DX_DOCDIR@/@PACKAGE@.pdf
-#
-#     @DX_DOCDIR@/@PACKAGE@.pdf: @DX_DOCDIR@/@PACKAGE@.tag
-#         cd @DX_DOCDIR@/latex; \
-#         rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \
-#         $(DX_PDFLATEX) refman.tex; \
-#         $(DX_MAKEINDEX) refman.idx; \
-#         $(DX_PDFLATEX) refman.tex; \
-#         countdown=5; \
-#         while $(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' \
-#                           refman.log > /dev/null 2>&1 \
-#            && test $$countdown -gt 0; do \
-#             $(DX_PDFLATEX) refman.tex; \
-#             countdown=`expr $$countdown - 1`; \
-#         done; \
-#         mv refman.pdf ../@PACKAGE@.pdf
-#
-#     endif DX_COND_pdf
-#
-#     ## ------------------------------------------------- ##
-#     ## Rules specific for LaTeX (shared for PS and PDF). ##
-#     ## ------------------------------------------------- ##
-#
-#     if DX_COND_latex
-#
-#     DX_CLEAN_LATEX = @DX_DOCDIR@/latex
-#
-#     endif DX_COND_latex
-#
-#     .PHONY: doxygen-run doxygen-doc $(DX_PS_GOAL) $(DX_PDF_GOAL)
-#
-#     .INTERMEDIATE: doxygen-run $(DX_PS_GOAL) $(DX_PDF_GOAL)
-#
-#     doxygen-run: @DX_DOCDIR@/@PACKAGE@.tag
-#
-#     doxygen-doc: doxygen-run $(DX_PS_GOAL) $(DX_PDF_GOAL)
-#
-#     @DX_DOCDIR@/@PACKAGE@.tag: $(DX_CONFIG) $(pkginclude_HEADERS)
-#         rm -rf @DX_DOCDIR@
-#         $(DX_ENV) $(DX_DOXYGEN) $(srcdir)/$(DX_CONFIG)
-#
-#     DX_CLEANFILES = \
-#         @DX_DOCDIR@/@PACKAGE@.tag \
-#         -r \
-#         $(DX_CLEAN_HTML) \
-#         $(DX_CLEAN_CHM) \
-#         $(DX_CLEAN_CHI) \
-#         $(DX_CLEAN_MAN) \
-#         $(DX_CLEAN_RTF) \
-#         $(DX_CLEAN_XML) \
-#         $(DX_CLEAN_PS) \
-#         $(DX_CLEAN_PDF) \
-#         $(DX_CLEAN_LATEX)
-#
-#     endif DX_COND_doc
-#
-#     ----- end aminclude.am ---------------------------------------
-#
-# LICENSE
-#
-#   Copyright (c) 2009 Oren Ben-Kiki <oren@ben-kiki.org>
-#
-#   Copying and distribution of this file, with or without modification, are
-#   permitted in any medium without royalty provided the copyright notice
-#   and this notice are preserved. This file is offered as-is, without any
-#   warranty.
-
-#serial 12
-
-## ----------##
-## Defaults. ##
-## ----------##
-
-DX_ENV=""
-AC_DEFUN([DX_FEATURE_doc],  ON)
-AC_DEFUN([DX_FEATURE_dot],  OFF)
-AC_DEFUN([DX_FEATURE_man],  OFF)
-AC_DEFUN([DX_FEATURE_html], ON)
-AC_DEFUN([DX_FEATURE_chm],  OFF)
-AC_DEFUN([DX_FEATURE_chi],  OFF)
-AC_DEFUN([DX_FEATURE_rtf],  OFF)
-AC_DEFUN([DX_FEATURE_xml],  OFF)
-AC_DEFUN([DX_FEATURE_pdf],  ON)
-AC_DEFUN([DX_FEATURE_ps],   ON)
-
-## --------------- ##
-## Private macros. ##
-## --------------- ##
-
-# DX_ENV_APPEND(VARIABLE, VALUE)
-# ------------------------------
-# Append VARIABLE="VALUE" to DX_ENV for invoking doxygen.
-AC_DEFUN([DX_ENV_APPEND], [AC_SUBST([DX_ENV], ["$DX_ENV $1='$2'"])])
-
-# DX_DIRNAME_EXPR
-# ---------------
-# Expand into a shell expression prints the directory part of a path.
-AC_DEFUN([DX_DIRNAME_EXPR],
-         [[expr ".$1" : '\(\.\)[^/]*$' \| "x$1" : 'x\(.*\)/[^/]*$']])
-
-# DX_IF_FEATURE(FEATURE, IF-ON, IF-OFF)
-# -------------------------------------
-# Expands according to the M4 (static) status of the feature.
-AC_DEFUN([DX_IF_FEATURE], [ifelse(DX_FEATURE_$1, ON, [$2], [$3])])
-
-# DX_REQUIRE_PROG(VARIABLE, PROGRAM)
-# ----------------------------------
-# Require the specified program to be found for the DX_CURRENT_FEATURE to work.
-AC_DEFUN([DX_REQUIRE_PROG], [
-AC_PATH_TOOL([$1], [$2])
-if test "$DX_FLAG_[]DX_CURRENT_FEATURE$$1" = 1; then
-    AC_MSG_WARN([$2 not found - will not DX_CURRENT_DESCRIPTION])
-    AC_SUBST(DX_FLAG_[]DX_CURRENT_FEATURE, 0)
-fi
-])
-
-# DX_TEST_FEATURE(FEATURE)
-# ------------------------
-# Expand to a shell expression testing whether the feature is active.
-AC_DEFUN([DX_TEST_FEATURE], [test "$DX_FLAG_$1" = 1])
-
-# DX_CHECK_DEPEND(REQUIRED_FEATURE, REQUIRED_STATE)
-# -------------------------------------------------
-# Verify that a required features has the right state before trying to turn on
-# the DX_CURRENT_FEATURE.
-AC_DEFUN([DX_CHECK_DEPEND], [
-test "$DX_FLAG_$1" = "$2" \
-|| AC_MSG_ERROR([doxygen-DX_CURRENT_FEATURE ifelse([$2], 1,
-                            requires, contradicts) doxygen-DX_CURRENT_FEATURE])
-])
-
-# DX_CLEAR_DEPEND(FEATURE, REQUIRED_FEATURE, REQUIRED_STATE)
-# ----------------------------------------------------------
-# Turn off the DX_CURRENT_FEATURE if the required feature is off.
-AC_DEFUN([DX_CLEAR_DEPEND], [
-test "$DX_FLAG_$1" = "$2" || AC_SUBST(DX_FLAG_[]DX_CURRENT_FEATURE, 0)
-])
-
-# DX_FEATURE_ARG(FEATURE, DESCRIPTION,
-#                CHECK_DEPEND, CLEAR_DEPEND,
-#                REQUIRE, DO-IF-ON, DO-IF-OFF)
-# --------------------------------------------
-# Parse the command-line option controlling a feature. CHECK_DEPEND is called
-# if the user explicitly turns the feature on (and invokes DX_CHECK_DEPEND),
-# otherwise CLEAR_DEPEND is called to turn off the default state if a required
-# feature is disabled (using DX_CLEAR_DEPEND). REQUIRE performs additional
-# requirement tests (DX_REQUIRE_PROG). Finally, an automake flag is set and
-# DO-IF-ON or DO-IF-OFF are called according to the final state of the feature.
-AC_DEFUN([DX_ARG_ABLE], [
-    AC_DEFUN([DX_CURRENT_FEATURE], [$1])
-    AC_DEFUN([DX_CURRENT_DESCRIPTION], [$2])
-    AC_ARG_ENABLE(doxygen-$1,
-                  [AS_HELP_STRING(DX_IF_FEATURE([$1], [--disable-doxygen-$1],
-                                                      [--enable-doxygen-$1]),
-                                  DX_IF_FEATURE([$1], [don't $2], [$2]))],
-                  [
-case "$enableval" in
-#(
-y|Y|yes|Yes|YES)
-    AC_SUBST([DX_FLAG_$1], 1)
-    $3
-;; #(
-n|N|no|No|NO)
-    AC_SUBST([DX_FLAG_$1], 0)
-;; #(
-*)
-    AC_MSG_ERROR([invalid value '$enableval' given to doxygen-$1])
-;;
-esac
-], [
-AC_SUBST([DX_FLAG_$1], [DX_IF_FEATURE([$1], 1, 0)])
-$4
-])
-if DX_TEST_FEATURE([$1]); then
-    $5
-    :
-fi
-AM_CONDITIONAL(DX_COND_$1, DX_TEST_FEATURE([$1]))
-if DX_TEST_FEATURE([$1]); then
-    $6
-    :
-else
-    $7
-    :
-fi
-])
-
-## -------------- ##
-## Public macros. ##
-## -------------- ##
-
-# DX_XXX_FEATURE(DEFAULT_STATE)
-# -----------------------------
-AC_DEFUN([DX_DOXYGEN_FEATURE], [AC_DEFUN([DX_FEATURE_doc],  [$1])])
-AC_DEFUN([DX_DOT_FEATURE],     [AC_DEFUN([DX_FEATURE_dot], [$1])])
-AC_DEFUN([DX_MAN_FEATURE],     [AC_DEFUN([DX_FEATURE_man],  [$1])])
-AC_DEFUN([DX_HTML_FEATURE],    [AC_DEFUN([DX_FEATURE_html], [$1])])
-AC_DEFUN([DX_CHM_FEATURE],     [AC_DEFUN([DX_FEATURE_chm],  [$1])])
-AC_DEFUN([DX_CHI_FEATURE],     [AC_DEFUN([DX_FEATURE_chi],  [$1])])
-AC_DEFUN([DX_RTF_FEATURE],     [AC_DEFUN([DX_FEATURE_rtf],  [$1])])
-AC_DEFUN([DX_XML_FEATURE],     [AC_DEFUN([DX_FEATURE_xml],  [$1])])
-AC_DEFUN([DX_XML_FEATURE],     [AC_DEFUN([DX_FEATURE_xml],  [$1])])
-AC_DEFUN([DX_PDF_FEATURE],     [AC_DEFUN([DX_FEATURE_pdf],  [$1])])
-AC_DEFUN([DX_PS_FEATURE],      [AC_DEFUN([DX_FEATURE_ps],   [$1])])
-
-# DX_INIT_DOXYGEN(PROJECT, [CONFIG-FILE], [OUTPUT-DOC-DIR])
-# ---------------------------------------------------------
-# PROJECT also serves as the base name for the documentation files.
-# The default CONFIG-FILE is "Doxyfile" and OUTPUT-DOC-DIR is "doxygen-doc".
-AC_DEFUN([DX_INIT_DOXYGEN], [
-
-# Files:
-AC_SUBST([DX_PROJECT], [$1])
-AC_SUBST([DX_CONFIG], [ifelse([$2], [], Doxyfile, [$2])])
-AC_SUBST([DX_DOCDIR], [ifelse([$3], [], doxygen-doc, [$3])])
-
-# Environment variables used inside doxygen.cfg:
-DX_ENV_APPEND(SRCDIR, $srcdir)
-DX_ENV_APPEND(PROJECT, $DX_PROJECT)
-DX_ENV_APPEND(DOCDIR, $DX_DOCDIR)
-DX_ENV_APPEND(VERSION, $PACKAGE_VERSION)
-
-# Doxygen itself:
-DX_ARG_ABLE(doc, [generate any doxygen documentation],
-            [],
-            [],
-            [DX_REQUIRE_PROG([DX_DOXYGEN], doxygen)
-             DX_REQUIRE_PROG([DX_PERL], perl)],
-            [DX_ENV_APPEND(PERL_PATH, $DX_PERL)])
-
-# Dot for graphics:
-DX_ARG_ABLE(dot, [generate graphics for doxygen documentation],
-            [DX_CHECK_DEPEND(doc, 1)],
-            [DX_CLEAR_DEPEND(doc, 1)],
-            [DX_REQUIRE_PROG([DX_DOT], dot)],
-            [DX_ENV_APPEND(HAVE_DOT, YES)
-             DX_ENV_APPEND(DOT_PATH, [`DX_DIRNAME_EXPR($DX_DOT)`])],
-            [DX_ENV_APPEND(HAVE_DOT, NO)])
-
-# Man pages generation:
-DX_ARG_ABLE(man, [generate doxygen manual pages],
-            [DX_CHECK_DEPEND(doc, 1)],
-            [DX_CLEAR_DEPEND(doc, 1)],
-            [],
-            [DX_ENV_APPEND(GENERATE_MAN, YES)],
-            [DX_ENV_APPEND(GENERATE_MAN, NO)])
-
-# RTF file generation:
-DX_ARG_ABLE(rtf, [generate doxygen RTF documentation],
-            [DX_CHECK_DEPEND(doc, 1)],
-            [DX_CLEAR_DEPEND(doc, 1)],
-            [],
-            [DX_ENV_APPEND(GENERATE_RTF, YES)],
-            [DX_ENV_APPEND(GENERATE_RTF, NO)])
-
-# XML file generation:
-DX_ARG_ABLE(xml, [generate doxygen XML documentation],
-            [DX_CHECK_DEPEND(doc, 1)],
-            [DX_CLEAR_DEPEND(doc, 1)],
-            [],
-            [DX_ENV_APPEND(GENERATE_XML, YES)],
-            [DX_ENV_APPEND(GENERATE_XML, NO)])
-
-# (Compressed) HTML help generation:
-DX_ARG_ABLE(chm, [generate doxygen compressed HTML help documentation],
-            [DX_CHECK_DEPEND(doc, 1)],
-            [DX_CLEAR_DEPEND(doc, 1)],
-            [DX_REQUIRE_PROG([DX_HHC], hhc)],
-            [DX_ENV_APPEND(HHC_PATH, $DX_HHC)
-             DX_ENV_APPEND(GENERATE_HTML, YES)
-             DX_ENV_APPEND(GENERATE_HTMLHELP, YES)],
-            [DX_ENV_APPEND(GENERATE_HTMLHELP, NO)])
-
-# Seperate CHI file generation.
-DX_ARG_ABLE(chi, [generate doxygen seperate compressed HTML help index file],
-            [DX_CHECK_DEPEND(chm, 1)],
-            [DX_CLEAR_DEPEND(chm, 1)],
-            [],
-            [DX_ENV_APPEND(GENERATE_CHI, YES)],
-            [DX_ENV_APPEND(GENERATE_CHI, NO)])
-
-# Plain HTML pages generation:
-DX_ARG_ABLE(html, [generate doxygen plain HTML documentation],
-            [DX_CHECK_DEPEND(doc, 1) DX_CHECK_DEPEND(chm, 0)],
-            [DX_CLEAR_DEPEND(doc, 1) DX_CLEAR_DEPEND(chm, 0)],
-            [],
-            [DX_ENV_APPEND(GENERATE_HTML, YES)],
-            [DX_TEST_FEATURE(chm) || DX_ENV_APPEND(GENERATE_HTML, NO)])
-
-# PostScript file generation:
-DX_ARG_ABLE(ps, [generate doxygen PostScript documentation],
-            [DX_CHECK_DEPEND(doc, 1)],
-            [DX_CLEAR_DEPEND(doc, 1)],
-            [DX_REQUIRE_PROG([DX_LATEX], latex)
-             DX_REQUIRE_PROG([DX_MAKEINDEX], makeindex)
-             DX_REQUIRE_PROG([DX_DVIPS], dvips)
-             DX_REQUIRE_PROG([DX_EGREP], egrep)])
-
-# PDF file generation:
-DX_ARG_ABLE(pdf, [generate doxygen PDF documentation],
-            [DX_CHECK_DEPEND(doc, 1)],
-            [DX_CLEAR_DEPEND(doc, 1)],
-            [DX_REQUIRE_PROG([DX_PDFLATEX], pdflatex)
-             DX_REQUIRE_PROG([DX_MAKEINDEX], makeindex)
-             DX_REQUIRE_PROG([DX_EGREP], egrep)])
-
-# LaTeX generation for PS and/or PDF:
-AM_CONDITIONAL(DX_COND_latex, DX_TEST_FEATURE(ps) || DX_TEST_FEATURE(pdf))
-if DX_TEST_FEATURE(ps) || DX_TEST_FEATURE(pdf); then
-    DX_ENV_APPEND(GENERATE_LATEX, YES)
-else
-    DX_ENV_APPEND(GENERATE_LATEX, NO)
-fi
-
-# Paper size for PS and/or PDF:
-AC_ARG_VAR(DOXYGEN_PAPER_SIZE,
-           [a4wide (default), a4, letter, legal or executive])
-case "$DOXYGEN_PAPER_SIZE" in
-#(
-"")
-    AC_SUBST(DOXYGEN_PAPER_SIZE, "")
-;; #(
-a4wide|a4|letter|legal|executive)
-    DX_ENV_APPEND(PAPER_SIZE, $DOXYGEN_PAPER_SIZE)
-;; #(
-*)
-    AC_MSG_ERROR([unknown DOXYGEN_PAPER_SIZE='$DOXYGEN_PAPER_SIZE'])
-;;
-esac
-
-#For debugging:
-#echo DX_FLAG_doc=$DX_FLAG_doc
-#echo DX_FLAG_dot=$DX_FLAG_dot
-#echo DX_FLAG_man=$DX_FLAG_man
-#echo DX_FLAG_html=$DX_FLAG_html
-#echo DX_FLAG_chm=$DX_FLAG_chm
-#echo DX_FLAG_chi=$DX_FLAG_chi
-#echo DX_FLAG_rtf=$DX_FLAG_rtf
-#echo DX_FLAG_xml=$DX_FLAG_xml
-#echo DX_FLAG_pdf=$DX_FLAG_pdf
-#echo DX_FLAG_ps=$DX_FLAG_ps
-#echo DX_ENV=$DX_ENV
-])
diff --git a/src/c/data.h b/src/c/data.h
deleted file mode 100644
index ffaa83c..0000000
--- a/src/c/data.h
+++ /dev/null
@@ -1,96 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_DATA_H
-#define NDN_DATA_H
-
-#include <ndn-cpp-dev/c/data-types.h>
-#include "name.h"
-#include "publisher-public-key-digest.h"
-#include "key-locator.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * An ndn_Signature struct holds the signature bits and other info representing the signature in a data packet.
- */
-struct ndn_Signature {
-  struct ndn_Blob digestAlgorithm; /**< A Blob whose value is a pointer to a pre-allocated buffer.  0 for none.
-                                    *   If none, default is 2.16.840.1.101.3.4.2.1 (sha-256). */
-  struct ndn_Blob witness;         /**< A Blob whose value is a pointer to pre-allocated buffer.  0 for none. */
-  struct ndn_Blob signature;
-  struct ndn_PublisherPublicKeyDigest publisherPublicKeyDigest;
-  struct ndn_KeyLocator keyLocator;
-};
-
-/**
- * Initialize the ndn_Signature struct with values for none and the default digestAlgorithm.
- * @param self A pointer to the ndn_MetaInfo struct.
- * @param keyNameComponents The pre-allocated array of ndn_NameComponent for the keyLocator.
- * @param maxKeyNameComponents The number of elements in the allocated keyNameComponents array.
- */
-static inline void ndn_Signature_initialize(struct ndn_Signature *self, struct ndn_NameComponent *keyNameComponents, size_t maxKeyNameComponents) {
-  ndn_Blob_initialize(&self->digestAlgorithm, 0, 0);
-  ndn_Blob_initialize(&self->witness, 0, 0);
-  ndn_Blob_initialize(&self->signature, 0, 0);
-  ndn_PublisherPublicKeyDigest_initialize(&self->publisherPublicKeyDigest);
-  ndn_KeyLocator_initialize(&self->keyLocator, keyNameComponents, maxKeyNameComponents);
-}
-
-/**
- * An ndn_MetaInfo struct holds the meta info which is signed inside the data packet.
- */
-struct ndn_MetaInfo {
-  ndn_MillisecondsSince1970 timestampMilliseconds; /**< milliseconds since 1/1/1970. -1 for none */
-  ndn_ContentType type;                  /**< default is ndn_ContentType_DATA. -1 for none */
-  int freshnessSeconds;                  /**< -1 for none */
-  struct ndn_NameComponent finalBlockID; /**< has a pointer to a pre-allocated buffer.  0 for none */
-};
-
-/**
- * Initialize the ndn_MetaInfo struct with values for none and the type to the default ndn_ContentType_DATA.
- * @param self A pointer to the ndn_MetaInfo struct.
- */
-static inline void ndn_MetaInfo_initialize
-  (struct ndn_MetaInfo *self) {
-  self->type = ndn_ContentType_DATA;
-  self->freshnessSeconds = -1;
-  ndn_NameComponent_initialize(&self->finalBlockID, 0, 0);
-}
-
-struct ndn_Data {
-  struct ndn_Signature signature;
-  struct ndn_Name name;
-  struct ndn_MetaInfo metaInfo;
-  struct ndn_Blob content;     /**< A Blob with a pointer to the content. */
-};
-
-/**
- * Initialize an ndn_Data struct with the pre-allocated nameComponents and keyNameComponents,
- * and defaults for all the values.
- * @param self A pointer to the ndn_Data struct.
- * @param nameComponents The pre-allocated array of ndn_NameComponent.
- * @param maxNameComponents The number of elements in the allocated nameComponents array.
- * @param keyNameComponents The pre-allocated array of ndn_NameComponent for the signature.keyLocator.
- * @param maxKeyNameComponents The number of elements in the allocated keyNameComponents array.
- */
-static inline void ndn_Data_initialize
-  (struct ndn_Data *self, struct ndn_NameComponent *nameComponents, size_t maxNameComponents, 
-   struct ndn_NameComponent *keyNameComponents, size_t maxKeyNameComponents) 
-{
-  ndn_Signature_initialize(&self->signature, keyNameComponents, maxKeyNameComponents);
-  ndn_Name_initialize(&self->name, nameComponents, maxNameComponents);
-  ndn_MetaInfo_initialize(&self->metaInfo);
-  ndn_Blob_initialize(&self->content, 0, 0);
-}
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/src/c/encoding/binary-xml-data.c b/src/c/encoding/binary-xml-data.c
deleted file mode 100644
index d8013cf..0000000
--- a/src/c/encoding/binary-xml-data.c
+++ /dev/null
@@ -1,242 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * Derived from ContentObject.js by Meki Cheraoui.
- * See COPYING for copyright and distribution information.
- */
-
-#include "binary-xml-encoder.h"
-#include "binary-xml-decoder.h"
-#include "binary-xml-name.h"
-#include "binary-xml-publisher-public-key-digest.h"
-#include "binary-xml-data.h"
-#include "binary-xml-key.h"
-
-static ndn_Error encodeSignature(struct ndn_Signature *signature, struct ndn_BinaryXmlEncoder *encoder)
-{
-  ndn_Error error;
-  if ((error = ndn_BinaryXmlEncoder_writeElementStartDTag(encoder, ndn_BinaryXml_DTag_Signature)))
-    return error;
-  
-  // TODO: Check if digestAlgorithm is the same as the default, and skip it, otherwise encode it as UDATA.
-
-  if ((error = ndn_BinaryXmlEncoder_writeOptionalBlobDTagElement(encoder, ndn_BinaryXml_DTag_Witness, &signature->witness)))
-    return error;
-
-  // Require a signature.
-  if ((error = ndn_BinaryXmlEncoder_writeBlobDTagElement(encoder, ndn_BinaryXml_DTag_SignatureBits, &signature->signature)))
-    return error;
-  
-  if ((error = ndn_BinaryXmlEncoder_writeElementClose(encoder)))
-    return error;
-  
-  return NDN_ERROR_success;    
-}
-
-static ndn_Error decodeSignature(struct ndn_Signature *signature, struct ndn_BinaryXmlDecoder *decoder)
-{
-  ndn_Error error;
-  if ((error = ndn_BinaryXmlDecoder_readElementStartDTag(decoder, ndn_BinaryXml_DTag_Signature)))
-    return error;
-  
-  /* TODO: digestAlgorithm as UDATA */ signature->digestAlgorithm.value = 0; signature->digestAlgorithm.length = 0;
-  
-  if ((error = ndn_BinaryXmlDecoder_readOptionalBinaryDTagElement
-      (decoder, ndn_BinaryXml_DTag_Witness, 0, &signature->witness)))
-    return error;
-  
-  // Require a signature.
-  if ((error = ndn_BinaryXmlDecoder_readBinaryDTagElement
-      (decoder, ndn_BinaryXml_DTag_SignatureBits, 0, &signature->signature)))
-    return error;
-  
-  if ((error = ndn_BinaryXmlDecoder_readElementClose(decoder)))
-    return error;
-  
-  return NDN_ERROR_success;
-}
-
-static ndn_Error encodeSignedInfo(struct ndn_Signature *signature, struct ndn_MetaInfo *metaInfo, struct ndn_BinaryXmlEncoder *encoder)
-{
-  if ((int)metaInfo->type < 0)
-    return NDN_ERROR_success;
-
-  ndn_Error error;
-  if ((error = ndn_BinaryXmlEncoder_writeElementStartDTag(encoder, ndn_BinaryXml_DTag_SignedInfo)))
-    return error;
-
-  // This will skip encoding if there is no publisherPublicKeyDigest.
-  if ((error = ndn_encodeBinaryXmlPublisherPublicKeyDigest(&signature->publisherPublicKeyDigest, encoder)))
-    return error;
-  
-  if ((error = ndn_BinaryXmlEncoder_writeOptionalTimeMillisecondsDTagElement
-      (encoder, ndn_BinaryXml_DTag_Timestamp, metaInfo->timestampMilliseconds)))
-    return error;
-  
-  if (!((int)metaInfo->type < 0 || metaInfo->type == ndn_ContentType_DATA)) {
-    // Not the default of DATA, so we need to encode the type.
-    struct ndn_Blob typeBytes;
-    typeBytes.length = 3;
-    if (metaInfo->type == ndn_ContentType_ENCR)
-      typeBytes.value = (uint8_t *)"\x10\xD0\x91";
-    else if (metaInfo->type == ndn_ContentType_GONE)
-      typeBytes.value = (uint8_t *)"\x18\xE3\x44";
-    else if (metaInfo->type == ndn_ContentType_KEY)
-      typeBytes.value = (uint8_t *)"\x28\x46\x3F";
-    else if (metaInfo->type == ndn_ContentType_LINK)
-      typeBytes.value = (uint8_t *)"\x2C\x83\x4A";
-    else if (metaInfo->type == ndn_ContentType_NACK)
-      typeBytes.value = (uint8_t *)"\x34\x00\x8A";
-    else
-      return NDN_ERROR_unrecognized_ndn_ContentType;
-
-    if ((error = ndn_BinaryXmlEncoder_writeBlobDTagElement(encoder, ndn_BinaryXml_DTag_Type, &typeBytes)))
-      return error;
-  }
-  
-  if ((error = ndn_BinaryXmlEncoder_writeOptionalUnsignedDecimalIntDTagElement
-      (encoder, ndn_BinaryXml_DTag_FreshnessSeconds, metaInfo->freshnessSeconds)))
-    return error;
-  
-  if ((error = ndn_BinaryXmlEncoder_writeOptionalBlobDTagElement
-      (encoder, ndn_BinaryXml_DTag_FinalBlockID, &metaInfo->finalBlockID.value)))
-    return error;
- 
-  // This will skip encoding if there is no key locator.
-  if ((error = ndn_encodeBinaryXmlKeyLocator(&signature->keyLocator, encoder)))
-    return error;
-  
-  if ((error = ndn_BinaryXmlEncoder_writeElementClose(encoder)))
-    return error;
-  
-  return NDN_ERROR_success;  
-}
-
-static ndn_Error decodeSignedInfo(struct ndn_Signature *signature, struct ndn_MetaInfo *metaInfo, struct ndn_BinaryXmlDecoder *decoder)
-{
-  ndn_Error error;
-  if ((error = ndn_BinaryXmlDecoder_readElementStartDTag(decoder, ndn_BinaryXml_DTag_SignedInfo)))
-    return error;
-  
-  if ((error = ndn_decodeOptionalBinaryXmlPublisherPublicKeyDigest(&signature->publisherPublicKeyDigest, decoder)))
-    return error;
-  
-  if ((error = ndn_BinaryXmlDecoder_readOptionalTimeMillisecondsDTagElement
-       (decoder, ndn_BinaryXml_DTag_Timestamp, &metaInfo->timestampMilliseconds)))
-    return error;
-  
-  struct ndn_Blob typeBytes;
-  if ((error = ndn_BinaryXmlDecoder_readOptionalBinaryDTagElement
-      (decoder, ndn_BinaryXml_DTag_Type, 0, &typeBytes)))
-    return error;
-  if (typeBytes.length == 0)
-    // The default Type is DATA.
-    metaInfo->type = ndn_ContentType_DATA;
-  else if (typeBytes.length == 3) {
-    // All the recognized content types are 3 bytes.
-    if (ndn_memcmp(typeBytes.value, (uint8_t *)"\x0C\x04\xC0", typeBytes.length) == 0)
-      metaInfo->type = ndn_ContentType_DATA;
-    else if (ndn_memcmp(typeBytes.value, (uint8_t *)"\x10\xD0\x91", typeBytes.length) == 0)
-      metaInfo->type = ndn_ContentType_ENCR;
-    else if (ndn_memcmp(typeBytes.value, (uint8_t *)"\x18\xE3\x44", typeBytes.length) == 0)
-      metaInfo->type = ndn_ContentType_GONE;
-    else if (ndn_memcmp(typeBytes.value, (uint8_t *)"\x28\x46\x3F", typeBytes.length) == 0)
-      metaInfo->type = ndn_ContentType_KEY;
-    else if (ndn_memcmp(typeBytes.value, (uint8_t *)"\x2C\x83\x4A", typeBytes.length) == 0)
-      metaInfo->type = ndn_ContentType_LINK;
-    else if (ndn_memcmp(typeBytes.value, (uint8_t *)"\x34\x00\x8A", typeBytes.length) == 0)
-      metaInfo->type = ndn_ContentType_NACK;
-    else
-      return NDN_ERROR_unrecognized_ndn_ContentType;
-  }
-  else
-    return NDN_ERROR_unrecognized_ndn_ContentType;
- 
-  if ((error = ndn_BinaryXmlDecoder_readOptionalUnsignedIntegerDTagElement
-      (decoder, ndn_BinaryXml_DTag_FreshnessSeconds, &metaInfo->freshnessSeconds)))
-    return error;
-
-  if ((error = ndn_BinaryXmlDecoder_readOptionalBinaryDTagElement
-      (decoder, ndn_BinaryXml_DTag_FinalBlockID, 0, &metaInfo->finalBlockID.value)))
-    return error;
-
-  if ((error = ndn_decodeOptionalBinaryXmlKeyLocator(&signature->keyLocator, decoder)))
-    return error;
-  
-  if ((error = ndn_BinaryXmlDecoder_readElementClose(decoder)))
-    return error;
-  
-  return NDN_ERROR_success;
-}
-
-ndn_Error ndn_encodeBinaryXmlData
-  (struct ndn_Data *data, size_t *signedPortionBeginOffset, size_t *signedPortionEndOffset, struct ndn_BinaryXmlEncoder *encoder)
-{
-  ndn_Error error;
-  if ((error = ndn_BinaryXmlEncoder_writeElementStartDTag(encoder, ndn_BinaryXml_DTag_ContentObject)))
-    return error;
-  
-  if ((error = encodeSignature(&data->signature, encoder)))
-    return error;
-  
-  *signedPortionBeginOffset = encoder->offset;
-
-  if ((error = ndn_encodeBinaryXmlName(&data->name, encoder)))
-    return error;
-  
-  if ((error = encodeSignedInfo(&data->signature, &data->metaInfo, encoder)))
-    return error;
-
-  if ((error = ndn_BinaryXmlEncoder_writeBlobDTagElement(encoder, ndn_BinaryXml_DTag_Content, &data->content)))
-    return error;
-
-  *signedPortionEndOffset = encoder->offset;
-
-  if ((error = ndn_BinaryXmlEncoder_writeElementClose(encoder)))
-    return error;
-  
-  return NDN_ERROR_success;
-}
-
-ndn_Error ndn_decodeBinaryXmlData
-  (struct ndn_Data *data, size_t *signedPortionBeginOffset, size_t *signedPortionEndOffset, struct ndn_BinaryXmlDecoder *decoder)
-{
-  ndn_Error error;
-  if ((error = ndn_BinaryXmlDecoder_readElementStartDTag(decoder, ndn_BinaryXml_DTag_ContentObject)))
-    return error;
-
-  int gotExpectedTag;
-  if ((error = ndn_BinaryXmlDecoder_peekDTag(decoder, ndn_BinaryXml_DTag_Signature, &gotExpectedTag)))
-    return error;
-  if (gotExpectedTag) {
-    if ((error = decodeSignature(&data->signature, decoder)))
-      return error;
-  }
-  else
-    ndn_Signature_initialize(&data->signature, data->signature.keyLocator.keyName.components, data->signature.keyLocator.keyName.maxComponents);
-  
-  *signedPortionBeginOffset = decoder->offset;
-  
-  if ((error = ndn_decodeBinaryXmlName(&data->name, decoder)))
-    return error;
-  
-  if ((error = ndn_BinaryXmlDecoder_peekDTag(decoder, ndn_BinaryXml_DTag_SignedInfo, &gotExpectedTag)))
-    return error;
-  if (gotExpectedTag) {
-    if ((error = decodeSignedInfo(&data->signature, &data->metaInfo, decoder)))
-      return error;
-  }
-  else
-    ndn_MetaInfo_initialize(&data->metaInfo);
-
-  // Require a Content element, but set allowNull to allow a missing BLOB.
-  if ((error = ndn_BinaryXmlDecoder_readBinaryDTagElement(decoder, ndn_BinaryXml_DTag_Content, 1, &data->content)))
-    return error; 
-  
-  *signedPortionEndOffset = decoder->offset;
-
-  if ((error = ndn_BinaryXmlDecoder_readElementClose(decoder)))
-    return error;
-  
-  return NDN_ERROR_success;
-}
diff --git a/src/c/encoding/binary-xml-data.h b/src/c/encoding/binary-xml-data.h
deleted file mode 100644
index f5865ba..0000000
--- a/src/c/encoding/binary-xml-data.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_BINARY_XML_DATA_H
-#define NDN_BINARY_XML_DATA_H
-
-#include "../errors.h"
-#include "../data.h"
-#include "binary-xml-encoder.h"
-#include "binary-xml-decoder.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * Encode the data packet as binary XML.
- * @param data Pointer to the data object to encode.
- * @param signedPortionBeginOffset Return the offset in the encoding of the beginning of the signed portion.
- * If you are not encoding in order to sign, you can ignore this returned value.
- * @param signedPortionEndOffset Return the offset in the encoding of the end of the signed portion.
- * If you are not encoding in order to sign, you can ignore this returned value.
- * @param encoder Pointer to the ndn_BinaryXmlEncoder struct which receives the encoding. 
- * @return 0 for success, else an error code.
- */
-ndn_Error ndn_encodeBinaryXmlData
-  (struct ndn_Data *data, size_t *signedPortionBeginOffset, size_t *signedPortionEndOffset, struct ndn_BinaryXmlEncoder *encoder);
-
-/**
- * Decode the data packet as binary XML and set the fields in the data object.
- * @param data Pointer to the data object whose fields are updated.
- * @param signedPortionBeginOffset Return the offset in the input buffer of the beginning of the signed portion.
- * If you are not decoding in order to verify, you can ignore this returned value.
- * @param signedPortionEndOffset Return the offset in the input buffer of the end of the signed portion.
- * If you are not decoding in order to verify, you can ignore this returned value.
- * @param decoder Pointer to the ndn_BinaryXmlDecoder struct which has been initialized with the buffer to decode. 
- * @return 0 for success, else an error code.
- */
-ndn_Error ndn_decodeBinaryXmlData
-  (struct ndn_Data *data, size_t *signedPortionBeginOffset, size_t *signedPortionEndOffset, struct ndn_BinaryXmlDecoder *decoder);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/src/c/encoding/binary-xml-decoder.c b/src/c/encoding/binary-xml-decoder.c
deleted file mode 100644
index 110ce51..0000000
--- a/src/c/encoding/binary-xml-decoder.c
+++ /dev/null
@@ -1,336 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * Derived from BinaryXMLDecoder.js by Meki Cheraoui.
- * See COPYING for copyright and distribution information.
- */
-
-#include "binary-xml.h"
-#include "binary-xml-decoder.h"
-
-/**
- * Return the octet at self->offset, converting to unsigned int.  Increment self->offset.
- * This does not check for reading past the end of the input, so this is called "unsafe".
- */
-static inline unsigned int unsafeReadOctet(struct ndn_BinaryXmlDecoder *self) 
-{
-  return (unsigned int)(self->input[self->offset++] & 0xff);  
-}
-
-/**
- * Return the octet at self->offset, converting to unsigned int.  Do not increment self->offset.
- * This does not check for reading past the end of the input, so this is called "unsafe".
- */
-static inline unsigned int unsafeGetOctet(struct ndn_BinaryXmlDecoder *self) 
-{
-  return (unsigned int)(self->input[self->offset] & 0xff);  
-}
-
-/**
- * Parse the value as a decimal unsigned integer.  This does not check for whitespace or + sign.
- * If valueLength is 0, this succeeds with resultOut 0.
- * @param value
- * @param valueLength
- * @param resultOut output the parsed integer.
- * @return 0 for success, else an error code, including if an element of value is not a decimal digit.
- */
-static ndn_Error parseUnsignedDecimalInt(uint8_t *value, size_t valueLength, unsigned int *resultOut)
-{
-  unsigned int result = 0;
-  
-  size_t i;
-  for (i = 0; i < valueLength; ++i) {
-    uint8_t digit = value[i];
-    if (!(digit >= '0' && digit <= '9'))
-      return NDN_ERROR_element_of_value_is_not_a_decimal_digit;
-
-    result *= 10;
-    result += (unsigned int)(digit - '0');
-  }
-    
-  *resultOut = result;
-  return NDN_ERROR_success;
-}
-
-ndn_Error ndn_BinaryXmlDecoder_decodeTypeAndValue(struct ndn_BinaryXmlDecoder *self, unsigned int *type, unsigned int *valueOut) 
-{
-  unsigned int value = 0;
-  int gotFirstOctet = 0;
-  
-  while (1) {
-    if (self->offset >= self->inputLength)
-      return NDN_ERROR_read_past_the_end_of_the_input;
-    
-    unsigned int octet = unsafeReadOctet(self);
-    
-    if (!gotFirstOctet) {
-      if (octet == 0)
-        return NDN_ERROR_the_first_header_octet_may_not_be_zero;
-      
-      gotFirstOctet = 1;
-    }
-    
-    if (octet & ndn_BinaryXml_TT_FINAL) {
-      // Finished.
-      *type = octet & ndn_BinaryXml_TT_MASK;
-      value = (value << ndn_BinaryXml_TT_VALUE_BITS) | ((octet >> ndn_BinaryXml_TT_BITS) & ndn_BinaryXml_TT_VALUE_MASK);
-      break;
-    }
-    
-    value = (value << ndn_BinaryXml_REGULAR_VALUE_BITS) | (octet & ndn_BinaryXml_REGULAR_VALUE_MASK);    
-  }
-
-  *valueOut = value;
-  return NDN_ERROR_success;
-}
-
-ndn_Error ndn_BinaryXmlDecoder_readElementStartDTag(struct ndn_BinaryXmlDecoder *self, unsigned int expectedTag)
-{
-  if (self->offset == self->previouslyPeekedDTagStartOffset) {
-    // peekDTag already decoded this DTag.
-    if (self->previouslyPeekedDTag != expectedTag)
-      return NDN_ERROR_did_not_get_the_expected_DTAG;
-
-    // Fast forward past the header.
-    self->offset = self->previouslyPeekedDTagEndOffset;
-  }
-  else {
-    ndn_Error error;
-    unsigned int type;
-    unsigned int value;
-    if ((error = ndn_BinaryXmlDecoder_decodeTypeAndValue(self, &type, &value)))
-      return error;
-
-    if (type != ndn_BinaryXml_DTAG)
-      return NDN_ERROR_header_type_is_not_a_DTAG;
-
-    if (value != expectedTag)
-      return NDN_ERROR_did_not_get_the_expected_DTAG;
-  }
-  
-  return NDN_ERROR_success;
-}
-
-ndn_Error ndn_BinaryXmlDecoder_readElementClose(struct ndn_BinaryXmlDecoder *self)
-{
-  if (self->offset >= self->inputLength)
-    return NDN_ERROR_read_past_the_end_of_the_input;
-  
-  if (unsafeReadOctet(self) != ndn_BinaryXml_CLOSE)
-    return NDN_ERROR_did_not_get_the_expected_element_close;
-  
-  return NDN_ERROR_success;
-}
-
-ndn_Error ndn_BinaryXmlDecoder_peekDTag(struct ndn_BinaryXmlDecoder *self, unsigned int expectedTag, int *gotExpectedTag)
-{
-  if (self->offset == self->previouslyPeekedDTagStartOffset)
-    // We already decoded this DTag.
-    *gotExpectedTag = (self->previouslyPeekedDTag == expectedTag ? 1 : 0);
-  else {
-    // Default to 0.
-    *gotExpectedTag = 0;
-
-    // First check if it is an element close (which cannot be the expected tag).  
-    if (self->offset >= self->inputLength)
-      return NDN_ERROR_read_past_the_end_of_the_input;
-    if (unsafeGetOctet(self) == ndn_BinaryXml_CLOSE)
-      return NDN_ERROR_success;
-
-    unsigned int type;
-    unsigned int value;
-    size_t saveOffset = self->offset;
-    ndn_Error error = ndn_BinaryXmlDecoder_decodeTypeAndValue(self, &type, &value);
-    // readElementStartDTag will use this to fast forward.
-    self->previouslyPeekedDTagEndOffset = self->offset;
-    // Restore offset.
-    self->offset = saveOffset;
-
-    if (error)
-      return error;
-
-    if (type == ndn_BinaryXml_DTAG) {
-      self->previouslyPeekedDTagStartOffset = saveOffset;
-      self->previouslyPeekedDTag = value;
-
-      if (value == expectedTag)
-        *gotExpectedTag = 1;
-    }
-  }
-  
-  return NDN_ERROR_success;
-}
-
-ndn_Error ndn_BinaryXmlDecoder_readBinaryDTagElement
-  (struct ndn_BinaryXmlDecoder *self, unsigned int expectedTag, int allowNull, struct ndn_Blob *value)
-{
-  ndn_Error error;
-  if ((error = ndn_BinaryXmlDecoder_readElementStartDTag(self, expectedTag)))
-    return error;
-  
-  if (allowNull) {
-    if (self->offset >= self->inputLength)
-      return NDN_ERROR_read_past_the_end_of_the_input;
-  
-    if (unsafeGetOctet(self) == ndn_BinaryXml_CLOSE) {
-      // The binary item is missing, and this is allowed, so read the element close and return a null value.
-      ++self->offset;
-      value->value = 0;
-      value->length = 0;
-      return NDN_ERROR_success;
-    }
-  }
-  
-  unsigned int itemType;
-  unsigned int uintValueLength;
-  if ((error = ndn_BinaryXmlDecoder_decodeTypeAndValue(self, &itemType, &uintValueLength)))
-    return error;
-  // Ignore itemType.
-  value->value = self->input + self->offset;
-  value->length = (size_t)uintValueLength;
-  self->offset += value->length;
-  
-  if ((error = ndn_BinaryXmlDecoder_readElementClose(self)))
-    return error;
-  
-  return NDN_ERROR_success;
-}
-
-ndn_Error ndn_BinaryXmlDecoder_readOptionalBinaryDTagElement
-  (struct ndn_BinaryXmlDecoder *self, unsigned int expectedTag, int allowNull, struct ndn_Blob *value)
-{
-  ndn_Error error;
-  int gotExpectedTag;
-  if ((error = ndn_BinaryXmlDecoder_peekDTag(self, expectedTag, &gotExpectedTag)))
-    return error;
-  if (gotExpectedTag) {
-    if ((error = ndn_BinaryXmlDecoder_readBinaryDTagElement(self, expectedTag, allowNull, value)))
-      return error;
-  }
-  else {
-    value->value = 0;
-    value->length = 0;
-  }  
-  
-  return NDN_ERROR_success;
-}
-
-ndn_Error ndn_BinaryXmlDecoder_readUDataDTagElement
-  (struct ndn_BinaryXmlDecoder *self, unsigned int expectedTag, struct ndn_Blob *value)
-{
-  ndn_Error error;
-  if ((error = ndn_BinaryXmlDecoder_readElementStartDTag(self, expectedTag)))
-    return error;
-    
-  unsigned int itemType;
-  unsigned int uintValueLength;
-  if ((error = ndn_BinaryXmlDecoder_decodeTypeAndValue(self, &itemType, &uintValueLength)))
-    return error;
-  if (itemType != ndn_BinaryXml_UDATA)
-    return NDN_ERROR_item_is_not_UDATA;
-  value->value = self->input + self->offset;
-  value->length = uintValueLength;
-  self->offset += value->length;
-  
-  if ((error = ndn_BinaryXmlDecoder_readElementClose(self)))
-    return error;
-  
-  return NDN_ERROR_success;
-}
-
-ndn_Error ndn_BinaryXmlDecoder_readOptionalUDataDTagElement
-  (struct ndn_BinaryXmlDecoder *self, unsigned int expectedTag, struct ndn_Blob *value)
-{
-  ndn_Error error;
-  int gotExpectedTag;
-  if ((error = ndn_BinaryXmlDecoder_peekDTag(self, expectedTag, &gotExpectedTag)))
-    return error;
-  if (gotExpectedTag) {
-    if ((error = ndn_BinaryXmlDecoder_readUDataDTagElement(self, expectedTag, value)))
-      return error;
-  }
-  else {
-    value->value = 0;
-    value->length = 0;
-  }  
-  
-  return NDN_ERROR_success;
-}
-
-ndn_Error ndn_BinaryXmlDecoder_readUnsignedIntegerDTagElement
-  (struct ndn_BinaryXmlDecoder *self, unsigned int expectedTag, unsigned int *value)
-{
-  struct ndn_Blob udataValue;
-  ndn_Error error;
-  if ((error = ndn_BinaryXmlDecoder_readUDataDTagElement(self, expectedTag, &udataValue)))
-    return error;
-  
-  if ((error = parseUnsignedDecimalInt(udataValue.value, udataValue.length, value)))
-    return error;
-  
-  return NDN_ERROR_success;
-}
-
-ndn_Error ndn_BinaryXmlDecoder_readOptionalUnsignedIntegerDTagElement
-  (struct ndn_BinaryXmlDecoder *self, unsigned int expectedTag, int *value)
-{
-  int gotExpectedTag;
-  ndn_Error error;
-  if ((error = ndn_BinaryXmlDecoder_peekDTag(self, expectedTag, &gotExpectedTag)))
-    return error;
-    
-  if (!gotExpectedTag) {
-    *value = -1;
-    return NDN_ERROR_success;
-  }
-
-  unsigned int unsignedValue;
-  if ((error = ndn_BinaryXmlDecoder_readUnsignedIntegerDTagElement(self, expectedTag, &unsignedValue)))
-    return error;
-  
-  *value = (int)unsignedValue;
-  return NDN_ERROR_success;
-}
-
-ndn_Error ndn_BinaryXmlDecoder_readTimeMillisecondsDTagElement
-  (struct ndn_BinaryXmlDecoder *self, unsigned int expectedTag, ndn_MillisecondsSince1970 *milliseconds)
-{
-  ndn_Error error;
-  struct ndn_Blob bytes;
-  if ((error = ndn_BinaryXmlDecoder_readBinaryDTagElement(self, expectedTag, 0, &bytes)))
-    return error;
-    
-  *milliseconds = 1000.0 * ndn_BinaryXmlDecoder_unsignedBigEndianToDouble(bytes.value, bytes.length) / 4096.0;
-  return NDN_ERROR_success;  
-}
-
-ndn_Error ndn_BinaryXmlDecoder_readOptionalTimeMillisecondsDTagElement
-  (struct ndn_BinaryXmlDecoder *self, unsigned int expectedTag, ndn_MillisecondsSince1970 *milliseconds)
-{
-  int gotExpectedTag;
-  ndn_Error error;
-  if ((error = ndn_BinaryXmlDecoder_peekDTag(self, expectedTag, &gotExpectedTag)))
-    return error;
-    
-  if (!gotExpectedTag) {
-    *milliseconds = -1.0;
-    return NDN_ERROR_success;
-  }
-
-  if ((error = ndn_BinaryXmlDecoder_readTimeMillisecondsDTagElement(self, expectedTag, milliseconds)))
-    return error;
-  
-  return NDN_ERROR_success;
-}
-
-double ndn_BinaryXmlDecoder_unsignedBigEndianToDouble(uint8_t *bytes, size_t bytesLength) 
-{
-  double result = 0.0;
-  size_t i;
-  for (i = 0; i < bytesLength; ++i) {
-    result *= 256.0;
-    result += (double)bytes[i];
-  }
-  
-  return result;
-}
diff --git a/src/c/encoding/binary-xml-decoder.h b/src/c/encoding/binary-xml-decoder.h
deleted file mode 100644
index 8fe1469..0000000
--- a/src/c/encoding/binary-xml-decoder.h
+++ /dev/null
@@ -1,195 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_BINARYXMLDECODER_H
-#define NDN_BINARYXMLDECODER_H
-
-#include <ndn-cpp-dev/c/common.h>
-#include "../errors.h"
-#include "../util/blob.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct ndn_BinaryXmlDecoder {
-  uint8_t *input;
-  size_t inputLength;
-  size_t offset;
-  // peekDTag sets and checks these, and readElementStartDTag uses them to avoid reading again.
-  size_t previouslyPeekedDTagStartOffset;
-  size_t previouslyPeekedDTagEndOffset;
-  unsigned int previouslyPeekedDTag;
-};
-
-static inline void ndn_BinaryXmlDecoder_initialize(struct ndn_BinaryXmlDecoder *self, uint8_t *input, size_t inputLength) 
-{
-  self->input = input;
-  self->inputLength = inputLength;
-  self->offset = 0;
-  self->previouslyPeekedDTagStartOffset = (size_t)-1;
-}
-
-/**
- * Decode the header's type and value from self's input starting at offset. Update offset.
- * @param self pointer to the ndn_BinaryXmlDecoder struct
- * @param type output for the header type
- * @param value output for the header value
- * @return 0 for success, else an error code for read past the end of the input or if the initial byte is zero
- */
-ndn_Error ndn_BinaryXmlDecoder_decodeTypeAndValue(struct ndn_BinaryXmlDecoder *self, unsigned int *type, unsigned int *value);
-
-/**
- * Decode the header from self's input starting at offset, expecting the type to be DTAG and the value to be expectedTag.
- * Update offset.
- * @param self pointer to the ndn_BinaryXmlDecoder struct
- * @param expectedTag the expected value for DTAG
- * @return 0 for success, else an error code, including an error if not the expected tag
- */
-ndn_Error ndn_BinaryXmlDecoder_readElementStartDTag(struct ndn_BinaryXmlDecoder *self, unsigned int expectedTag);
-
-/**
- * Read one byte from self's input starting at offset, expecting it to be the element close.
- * @param self pointer to the ndn_BinaryXmlDecoder struct
- * @return 0 for success, else an error code, including an error if not the element close
- */
-ndn_Error ndn_BinaryXmlDecoder_readElementClose(struct ndn_BinaryXmlDecoder *self);
-
-/**
- * Decode the header from self's input starting at offset, and if it is a DTAG where the value is the expectedTag,
- * then set gotExpectedTag to 1, else 0.  Do not update offset, including if returning an error.
- * @param self pointer to the ndn_BinaryXmlDecoder struct
- * @param expectedTag the expected value for DTAG
- * @param gotExpectedTag output a 1 if got the expected tag, else 0
- * @return 0 for success, else an error code for read past the end of the input
- */
-ndn_Error ndn_BinaryXmlDecoder_peekDTag(struct ndn_BinaryXmlDecoder *self, unsigned int expectedTag, int *gotExpectedTag);
-
-/**
- * Decode the header from self's input starting at offset, expecting the type to be DTAG and the value to be expectedTag.
- * Then read one item of any type (presumably BLOB, UDATA, TAG or ATTR) and return the item's value and length.
- * However, if allowNull is 1, then the item may be absent.
- * Finally, read the element close.  Update offset.
- * @param self pointer to the ndn_BinaryXmlDecoder struct
- * @param expectedTag the expected value for DTAG
- * @param allowNull 1 if the binary item may be missing
- * @param value output a pointer to the binary data inside self's input buffer. However, if allowNull is 1 and the
- * binary data item is absent, then set value and length to 0.
- * @return 0 for success, else an error code, including an error if not the expected tag, or if allowNull is 0
- * and the binary data is absent
- */
-ndn_Error ndn_BinaryXmlDecoder_readBinaryDTagElement
-  (struct ndn_BinaryXmlDecoder *self, unsigned int expectedTag, int allowNull, struct ndn_Blob *value);
-
-/**
- * Peek at the next element and if it is the expectedTag, call ndn_BinaryXmlDecoder_readBinaryDTagElement.
- * Otherwise, set value and valueLength to 0.
- * @param self pointer to the ndn_BinaryXmlDecoder struct
- * @param expectedTag the expected value for DTAG
- * @param allowNull 1 if the binary item may be missing
- * @param value output a pointer to the binary data inside self's input buffer. However, if allowNull is 1 and the
- * binary data item is absent, then set value and length to 0.
- * @return 0 for success, else an error code, including if allowNull is 0 and the binary data is absent
- */
-ndn_Error ndn_BinaryXmlDecoder_readOptionalBinaryDTagElement
-  (struct ndn_BinaryXmlDecoder *self, unsigned int expectedTag, int allowNull, struct ndn_Blob *value);
-
-/**
- * Decode the header from self's input starting at offset, expecting the type to be DTAG and the value to be expectedTag.
- * Then read one item expecting it to be type UDATA, and return the item's value and length.
- * Finally, read the element close.  Update offset.
- * @param self pointer to the ndn_BinaryXmlDecoder struct
- * @param expectedTag the expected value for DTAG
- * @param value output a pointer to the binary data inside self's input buffer.
- * @return 0 for success, else an error code, including an error if not the expected tag, or if the item is not UDATA.
- */
-ndn_Error ndn_BinaryXmlDecoder_readUDataDTagElement
-  (struct ndn_BinaryXmlDecoder *self, unsigned int expectedTag, struct ndn_Blob *value);
-
-/**
- * Peek at the next element and if it is the expectedTag, call ndn_BinaryXmlDecoder_readUDataDTagElement.
- * Otherwise, set value and valueLength to 0.
- * @param self pointer to the ndn_BinaryXmlDecoder struct
- * @param expectedTag the expected value for DTAG
- * @param value output a pointer to the binary data inside self's input buffer. However, if allowNull is 1 and the
- * binary data item is absent, then set value and length to 0.
- * @return 0 for success, else an error code.
- */
-ndn_Error ndn_BinaryXmlDecoder_readOptionalUDataDTagElement
-  (struct ndn_BinaryXmlDecoder *self, unsigned int expectedTag, struct ndn_Blob *value);
-
-/**
- * Decode the header from self's input starting at offset, expecting the type to be DTAG and the value to be expectedTag.
- * Then read one item expecting it to be type UDATA, parse it as an unsigned decimal integer and return the integer.
- * Finally, read the element close.  Update offset.
- * @param self pointer to the ndn_BinaryXmlDecoder struct
- * @param expectedTag the expected value for DTAG
- * @param value output the unsigned integer
- * @return 0 for success, else an error code, including an error if not the expected tag, or if the item is not UDATA,
- * or can't parse the integer
- */
-ndn_Error ndn_BinaryXmlDecoder_readUnsignedIntegerDTagElement
-  (struct ndn_BinaryXmlDecoder *self, unsigned int expectedTag, unsigned int *value);
-
-/**
- * Peek at the next element, and if it has the expectedTag then call ndn_BinaryXmlDecoder_readUnsignedIntegerDTagElement.
- * Otherwise, set value to -1.
- * @param self pointer to the ndn_BinaryXmlDecoder struct
- * @param expectedTag the expected value for DTAG
- * @param value output the unsigned integer cast to int, or -1 if the next element doesn't have expectedTag.
- * @return 0 for success, else an error code, including an error if the item is not UDATA,
- * or can't parse the integer
- */
-ndn_Error ndn_BinaryXmlDecoder_readOptionalUnsignedIntegerDTagElement
-  (struct ndn_BinaryXmlDecoder *self, unsigned int expectedTag, int *value);
-
-/**
- * Decode the header from self's input starting at offset, expecting the type to be DTAG and the value to be expectedTag.
- * Then read one item, parse it as an unsigned big endian integer in 4096 ticks per second, and convert it to milliseconds.
- * Finally, read the element close.  Update offset.
- * @param self pointer to the ndn_BinaryXmlDecoder struct
- * @param expectedTag the expected value for DTAG
- * @param milliseconds output the number of milliseconds
- * @return 0 for success, else an error code, including an error if not the expected tag
- */
-ndn_Error ndn_BinaryXmlDecoder_readTimeMillisecondsDTagElement
-  (struct ndn_BinaryXmlDecoder *self, unsigned int expectedTag, ndn_MillisecondsSince1970 *milliseconds);
-
-/**
- * Peek at the next element, and if it has the expectedTag then call ndn_BinaryXmlDecoder_readTimeMillisecondsDTagElement.
- * Otherwise, set value to -1.0 .
- * @param self pointer to the ndn_BinaryXmlDecoder struct
- * @param expectedTag the expected value for DTAG
- * @param milliseconds output the number of milliseconds, or -1.0 if the next element doesn't have expectedTag.
- * @return 0 for success, else an error code
- */
-ndn_Error ndn_BinaryXmlDecoder_readOptionalTimeMillisecondsDTagElement
-  (struct ndn_BinaryXmlDecoder *self, unsigned int expectedTag, ndn_MillisecondsSince1970 *milliseconds);
-
-/**
- * Interpret the bytes as an unsigned big endian integer and convert to a double. Don't check for overflow.
- * We use a double because it is large enough to represent NDN time (4096 ticks per second since 1970).
- * @param bytes pointer to the array of bytes
- * @param bytesLength the length of bytes
- * @return the result
- */
-double ndn_BinaryXmlDecoder_unsignedBigEndianToDouble(uint8_t *bytes, size_t bytesLength); 
-
-/**
- * Set the offset into the input, used for the next read.
- * @param self pointer to the ndn_BinaryXmlDecoder struct
- * @param offset the new offset
- */
-static inline void ndn_BinaryXmlDecoder_seek(struct ndn_BinaryXmlDecoder *self, size_t offset) 
-{
-  self->offset = offset;
-}
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/src/c/encoding/binary-xml-element-reader.c b/src/c/encoding/binary-xml-element-reader.c
deleted file mode 100644
index 350a978..0000000
--- a/src/c/encoding/binary-xml-element-reader.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#include "binary-xml-element-reader.h"
-
-ndn_Error ndn_BinaryXmlElementReader_onReceivedData
-  (struct ndn_BinaryXmlElementReader *self, uint8_t *data, size_t dataLength)
-{
-  // Process multiple objects in the data.
-  while(1) {
-    // Scan the input to check if a whole binary XML object has been read.
-    ndn_BinaryXmlStructureDecoder_seek(&self->structureDecoder, 0);
-    
-    ndn_Error error;
-    if ((error = ndn_BinaryXmlStructureDecoder_findElementEnd(&self->structureDecoder, data, dataLength)))
-      return error;
-    if (self->structureDecoder.gotElementEnd) {
-      // Got the remainder of an element.  Report to the caller.
-      if (self->usePartialData) {
-        // We have partial data from a previous call, so append this data and point to partialData.
-        if ((error = ndn_DynamicUInt8Array_set(&self->partialData, data, self->structureDecoder.offset, self->partialDataLength)))
-          return error;
-        self->partialDataLength += dataLength;
-                
-        (*self->elementListener->onReceivedElement)(self->elementListener, self->partialData.array, self->partialDataLength);
-        // Assume we don't need to use partialData anymore until needed.
-        self->usePartialData = 0;
-      }
-      else
-        // We are not using partialData, so just point to the input data buffer.
-        (*self->elementListener->onReceivedElement)(self->elementListener, data, self->structureDecoder.offset);
-        
-      // Need to read a new object.
-      data += self->structureDecoder.offset;
-      dataLength -= self->structureDecoder.offset;
-      ndn_BinaryXmlStructureDecoder_initialize(&self->structureDecoder);
-      if (dataLength == 0)
-        // No more data in the packet.
-        return NDN_ERROR_success;
-            
-      // else loop back to decode.
-    }
-    else {
-      // Save remaining data for a later call.
-      if (!self->usePartialData) {
-        self->usePartialData = 1;
-        self->partialDataLength = 0;
-      }
-      
-      if ((error = ndn_DynamicUInt8Array_set(&self->partialData, data, dataLength, self->partialDataLength)))
-        return error;
-      self->partialDataLength += dataLength;
-      
-      return NDN_ERROR_success;
-    }
-  }      
-}
diff --git a/src/c/encoding/binary-xml-element-reader.h b/src/c/encoding/binary-xml-element-reader.h
deleted file mode 100644
index 194f397..0000000
--- a/src/c/encoding/binary-xml-element-reader.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_BINARY_XML_ELEMENT_READER_H
-#define NDN_BINARY_XML_ELEMENT_READER_H
-
-#include <ndn-cpp-dev/c/encoding/element-listener.h>
-#include "../errors.h"
-#include "binary-xml-structure-decoder.h"
-#include "../util/dynamic-uint8-array.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-  
-/**
- * A BinaryXmlElementReader lets you call ndn_BinaryXmlElementReader_onReceivedData multiple times which uses an
- * ndn_BinaryXmlStructureDecoder to detect the end of a binary XML element and calls
- * (*elementListener->onReceivedElement)(element, elementLength) with the element. 
- * This handles the case where a single call to onReceivedData may contain multiple elements.
- */
-struct ndn_BinaryXmlElementReader {
-  struct ndn_ElementListener *elementListener;
-  struct ndn_BinaryXmlStructureDecoder structureDecoder;
-  int usePartialData;
-  struct ndn_DynamicUInt8Array partialData;
-  size_t partialDataLength;
-};
-
-/**
- * Initialize an ndn_BinaryXmlElementReader struct with the elementListener and a buffer for saving partial data.
- * @param self pointer to the ndn_BinaryXmlElementReader struct
- * @param elementListener pointer to the ndn_ElementListener used by ndn_BinaryXmlElementReader_onReceivedData.
- * @param buffer the allocated buffer.  If reallocFunction is null, this should be large enough to save a full element, perhaps 8000 bytes.
- * @param bufferLength the length of the buffer
- * @param reallocFunction see ndn_DynamicUInt8Array_ensureLength.  This may be 0.
- */
-static inline void ndn_BinaryXmlElementReader_initialize
-  (struct ndn_BinaryXmlElementReader *self, struct ndn_ElementListener *elementListener,
-   uint8_t *buffer, size_t bufferLength, uint8_t * (*reallocFunction)(struct ndn_DynamicUInt8Array *self, uint8_t *, size_t))
-{
-  self->elementListener = elementListener;
-  ndn_BinaryXmlStructureDecoder_initialize(&self->structureDecoder);
-  self->usePartialData = 0;
-  ndn_DynamicUInt8Array_initialize(&self->partialData, buffer, bufferLength, reallocFunction);
-}
-
-/**
- * Continue to read binary XML data until the end of an element, then call (*elementListener->onReceivedElement)(element, elementLength).
- * The buffer passed to onReceivedElement is only valid during this call.  If you need the data later, you must copy.
- * @param self pointer to the ndn_BinaryXmlElementReader struct
- * @param data pointer to the buffer with the binary XML bytes
- * @param dataLength length of data
- * @return 0 for success, else an error code
- */
-ndn_Error ndn_BinaryXmlElementReader_onReceivedData
-  (struct ndn_BinaryXmlElementReader *self, uint8_t *data, size_t dataLength);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/src/c/encoding/binary-xml-encoder.c b/src/c/encoding/binary-xml-encoder.c
deleted file mode 100644
index e27cbbc..0000000
--- a/src/c/encoding/binary-xml-encoder.c
+++ /dev/null
@@ -1,358 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * Derived from BinaryXMLEncoder.js by Meki Cheraoui.
- * See COPYING for copyright and distribution information.
- */
-
-#include <math.h>
-#include "../util/ndn_memory.h"
-#include "binary-xml.h"
-#include "binary-xml-encoder.h"
-
-enum {
-  ENCODING_LIMIT_1_BYTE = ((1 << ndn_BinaryXml_TT_VALUE_BITS) - 1),
-  ENCODING_LIMIT_2_BYTES = ((1 << (ndn_BinaryXml_TT_VALUE_BITS + ndn_BinaryXml_REGULAR_VALUE_BITS)) - 1),
-  ENCODING_LIMIT_3_BYTES = ((1 << (ndn_BinaryXml_TT_VALUE_BITS + 2 * ndn_BinaryXml_REGULAR_VALUE_BITS)) - 1)
-};
-
-/**
- * Call ndn_DynamicUInt8Array_ensureLength to ensure that there is enough room in the output, and copy
- * array to the output.  This does not write a header.
- * @param self pointer to the ndn_BinaryXmlEncoder struct
- * @param array the array to copy
- * @param arrayLength the length of the array
- * @return 0 for success, else an error code
- */
-static ndn_Error writeArray(struct ndn_BinaryXmlEncoder *self, uint8_t *array, size_t arrayLength)
-{
-  ndn_Error error;
-  if ((error = ndn_DynamicUInt8Array_ensureLength(self->output, self->offset + arrayLength)))
-    return error;
-  
-  ndn_memcpy(self->output->array + self->offset, array, arrayLength);
-  self->offset += arrayLength;
-  
-  return NDN_ERROR_success;
-}
-
-/**
- * Return the number of bytes to encode a header of value x.
- */
-static size_t getNHeaderEncodingBytes(unsigned int x) 
-{
-  // Do a quick check for pre-compiled results.
-  if (x <= ENCODING_LIMIT_1_BYTE) 
-    return 1;
-  if (x <= ENCODING_LIMIT_2_BYTES) 
-    return 2;
-  if (x <= ENCODING_LIMIT_3_BYTES) 
-    return 3;
-  
-  size_t nBytes = 1;
-  
-  // Last byte gives you TT_VALUE_BITS.
-  // Remainder each gives you REGULAR_VALUE_BITS.
-  x >>= ndn_BinaryXml_TT_VALUE_BITS;
-  while (x != 0) {
-    ++nBytes;
-    x >>= ndn_BinaryXml_REGULAR_VALUE_BITS;
-  }
-  
-  return nBytes;
-}
-
-/**
- * Reverse the length bytes in array.
- * @param array
- * @param length
- */
-static void reverse(uint8_t *array, size_t length) 
-{
-  if (length == 0)
-    return;
-  
-  uint8_t *left = array;
-  uint8_t *right = array + length - 1;
-  while (left < right) {
-    // Swap.
-    uint8_t temp = *left;
-    *left = *right;
-    *right = temp;
-    
-    ++left;
-    --right;
-  }
-}
-
-/**
- * Write x as an unsigned decimal integer to the output with the digits in reverse order, using ndn_DynamicUInt8Array_ensureLength.
- * This does not write a header.
- * We encode in reverse order, because this is the natural way to encode the digits, and the caller can reverse as needed.
- * @param self pointer to the ndn_BinaryXmlEncoder struct
- * @param x the unsigned int to write
- * @return 0 for success, else an error code
- */
-static ndn_Error encodeReversedUnsignedDecimalInt(struct ndn_BinaryXmlEncoder *self, unsigned int x) 
-{
-  while (1) {
-    ndn_Error error;
-    if ((error = ndn_DynamicUInt8Array_ensureLength(self->output, self->offset + 1)))
-      return error;
-    
-    self->output->array[self->offset++] = (uint8_t)(x % 10 + '0');
-    x /= 10;
-    
-    if (x == 0)
-      break;
-  }
-  
-  return NDN_ERROR_success;
-}
-
-/**
- * Reverse the buffer in self->output->array from startOffset to the current offset, then shift it right by the amount 
- * needed to prefix a header with type, then encode the header at startOffset.
- * We reverse and shift in the same function to avoid unnecessary copying if we first reverse then shift.
- * @param self pointer to the ndn_BinaryXmlEncoder struct
- * @param startOffset the offset in self->output->array of the start of the buffer to shift right
- * @param type the header type
- * @return 0 for success, else an error code
- */
-static ndn_Error reverseBufferAndInsertHeader
-  (struct ndn_BinaryXmlEncoder *self, size_t startOffset, unsigned int type)
-{
-  size_t nBufferBytes = self->offset - startOffset;
-  size_t nHeaderBytes = getNHeaderEncodingBytes(nBufferBytes);
-  ndn_Error error;
-  if ((error = ndn_DynamicUInt8Array_ensureLength(self->output, self->offset + nHeaderBytes)))
-    return error;
-  
-  // To reverse and shift at the same time, we first shift nHeaderBytes to the destination while reversing,
-  //   then reverse the remaining bytes in place.
-  uint8_t *from = self->output->array + startOffset;
-  uint8_t *fromEnd = from + nHeaderBytes;
-  uint8_t *to = self->output->array + startOffset + nBufferBytes + nHeaderBytes - 1;
-  while (from < fromEnd)
-    *(to--) = *(from++);
-  // Reverse the remaining bytes in place (if any).
-  if (nBufferBytes > nHeaderBytes)
-    reverse(self->output->array + startOffset + nHeaderBytes, nBufferBytes - nHeaderBytes);
-  
-  // Override the offset to force encodeTypeAndValue to encode at startOffset, then fix the offset.
-  self->offset = startOffset;
-  if ((error = ndn_BinaryXmlEncoder_encodeTypeAndValue(self, type, nBufferBytes)))
-    // We don't really expect to get an error, since we have already ensured the length.
-    return error;
-  self->offset = startOffset + nHeaderBytes + nBufferBytes;
-  
-  return NDN_ERROR_success;
-}
-
-/**
- * Split the absolute value of x, rounded to an integer into 32 bit unsigned integers hi32 and lo32.
- * We need this because not all C compilers support 64 bit long long integers, so we carry around
- * a high precision value as a double, which we assume has more than 32 bits.
- * But we want to do bit-wise operations on integers.
- * @param x the double value
- * @param hi32 output the high 32 bits
- * @param lo32 output the low 32 bits
- */
-static inline void splitAbsDouble(double x, unsigned long *hi32, unsigned long *lo32)
-{
-  if (x < 0)
-    x = -x;
-  x = round(x);
-  
-  double twoPower32 = 4294967296.0;
-  double lo32Double = fmod(x, twoPower32);
-  *lo32 = (unsigned long)lo32Double;
-  *hi32 = (unsigned long)((x - lo32Double) / twoPower32);
-}
-
-ndn_Error ndn_BinaryXmlEncoder_encodeTypeAndValue(struct ndn_BinaryXmlEncoder *self, unsigned int type, unsigned int value)
-{
-  if (type > ndn_BinaryXml_UDATA)
-    return NDN_ERROR_header_type_is_out_of_range;
-  
-  // Encode backwards. Calculate how many bytes we need.
-  size_t nEncodingBytes = getNHeaderEncodingBytes(value);
-  ndn_Error error;
-  if ((error = ndn_DynamicUInt8Array_ensureLength(self->output, self->offset + nEncodingBytes)))
-    return error;
-
-  // Bottom 4 bits of value go in last byte with tag.
-  self->output->array[self->offset + nEncodingBytes - 1] = 
-    ((ndn_BinaryXml_TT_MASK & type) | 
-    ((ndn_BinaryXml_TT_VALUE_MASK & value) << ndn_BinaryXml_TT_BITS)) |
-    ndn_BinaryXml_TT_FINAL; // set top bit for last byte
-  value >>= ndn_BinaryXml_TT_VALUE_BITS;
-  
-  // Rest of value goes into preceding bytes, 7 bits per byte. (Zero top bit is "more" flag.)
-  size_t i = self->offset + nEncodingBytes - 2;
-  while (value != 0 && i >= self->offset) {
-    self->output->array[i] = (value & ndn_BinaryXml_REGULAR_VALUE_MASK);
-    value >>= ndn_BinaryXml_REGULAR_VALUE_BITS;
-    --i;
-  }
-  if (value != 0)
-    // This should not happen if getNHeaderEncodingBytes is correct.
-    return NDN_ERROR_encodeTypeAndValue_miscalculated_N_encoding_bytes;
-  
-  self->offset+= nEncodingBytes;
-  
-  return NDN_ERROR_success;
-}
-
-ndn_Error ndn_BinaryXmlEncoder_writeElementClose(struct ndn_BinaryXmlEncoder *self)
-{
-  ndn_Error error;
-  if ((error = ndn_DynamicUInt8Array_ensureLength(self->output, self->offset + 1)))
-    return error;
-  
-  self->output->array[self->offset] = ndn_BinaryXml_CLOSE;
-  self->offset += 1;
-  
-  return NDN_ERROR_success;
-}
-
-ndn_Error ndn_BinaryXmlEncoder_writeBlob(struct ndn_BinaryXmlEncoder *self, struct ndn_Blob *value)
-{
-  ndn_Error error;
-  if ((error = ndn_BinaryXmlEncoder_encodeTypeAndValue(self, ndn_BinaryXml_BLOB, value->length)))
-    return error;
-  
-  if ((error = writeArray(self, value->value, value->length)))
-    return error;
-  
-  return NDN_ERROR_success;
-}
-
-ndn_Error ndn_BinaryXmlEncoder_writeBlobDTagElement(struct ndn_BinaryXmlEncoder *self, unsigned int tag, struct ndn_Blob *value)
-{
-  ndn_Error error;
-  if ((error = ndn_BinaryXmlEncoder_writeElementStartDTag(self, tag)))
-    return error;
-  
-  if ((error = ndn_BinaryXmlEncoder_writeBlob(self, value)))
-    return error;  
-  
-  if ((error = ndn_BinaryXmlEncoder_writeElementClose(self)))
-    return error;
-  
-  return NDN_ERROR_success;
-}
-
-ndn_Error ndn_BinaryXmlEncoder_writeUData(struct ndn_BinaryXmlEncoder *self, struct ndn_Blob *value)
-{
-  ndn_Error error;
-  if ((error = ndn_BinaryXmlEncoder_encodeTypeAndValue(self, ndn_BinaryXml_UDATA, value->length)))
-    return error;
-  
-  if ((error = writeArray(self, value->value, value->length)))
-    return error;
-  
-  return NDN_ERROR_success;
-}
-
-ndn_Error ndn_BinaryXmlEncoder_writeUDataDTagElement(struct ndn_BinaryXmlEncoder *self, unsigned int tag, struct ndn_Blob *value)
-{
-  ndn_Error error;
-  if ((error = ndn_BinaryXmlEncoder_writeElementStartDTag(self, tag)))
-    return error;
-  
-  if ((error = ndn_BinaryXmlEncoder_writeUData(self, value)))
-    return error;  
-  
-  if ((error = ndn_BinaryXmlEncoder_writeElementClose(self)))
-    return error;
-  
-  return NDN_ERROR_success;
-}
-
-ndn_Error ndn_BinaryXmlEncoder_writeUnsignedDecimalInt(struct ndn_BinaryXmlEncoder *self, unsigned int value)
-{
-  // First write the decimal int (to find out how many bytes it is), then shift it forward to make room for the header.
-  size_t startOffset = self->offset;
-  
-  ndn_Error error;
-  if ((error = encodeReversedUnsignedDecimalInt(self, value)))
-    return error;
-  
-  if ((error = reverseBufferAndInsertHeader(self, startOffset, ndn_BinaryXml_UDATA)))
-    return error;
-  
-  return NDN_ERROR_success;
-}
-
-ndn_Error ndn_BinaryXmlEncoder_writeUnsignedDecimalIntDTagElement(struct ndn_BinaryXmlEncoder *self, unsigned int tag, unsigned int value)
-{
-  ndn_Error error;
-  if ((error = ndn_BinaryXmlEncoder_writeElementStartDTag(self, tag)))
-    return error;
-  
-  if ((error = ndn_BinaryXmlEncoder_writeUnsignedDecimalInt(self, value)))
-    return error;  
-  
-  if ((error = ndn_BinaryXmlEncoder_writeElementClose(self)))
-    return error;
-  
-  return NDN_ERROR_success;
-}
-
-ndn_Error ndn_BinaryXmlEncoder_writeAbsDoubleBigEndianBlob(struct ndn_BinaryXmlEncoder *self, double value)
-{
-  unsigned long hi32, lo32;
-  splitAbsDouble(value, &hi32, &lo32);
-  
-  // First encode the big endian backwards, then reverseBufferAndInsertHeader will reverse it.
-  size_t startOffset = self->offset;
-  
-  ndn_Error error;
-  while (lo32 != 0) {
-    if ((error = ndn_DynamicUInt8Array_ensureLength(self->output, self->offset + 1)))
-      return error;
-    
-    self->output->array[self->offset++] = (uint8_t)(lo32 & 0xff);
-    lo32 >>= 8;
-  }
-  
-  if (hi32 != 0) {
-    // Pad the lo values out to 4 bytes.
-    while (self->offset - startOffset < 4) {
-      if ((error = ndn_DynamicUInt8Array_ensureLength(self->output, self->offset + 1)))
-        return error;
-    
-      self->output->array[self->offset++] = 0;
-    }
-    
-    // Encode hi32
-    while (hi32 != 0) {
-      if ((error = ndn_DynamicUInt8Array_ensureLength(self->output, self->offset + 1)))
-        return error;
-    
-      self->output->array[self->offset++] = (uint8_t)(hi32 & 0xff);
-      hi32 >>= 8;
-    }
-  }
-  
-  if ((error = reverseBufferAndInsertHeader(self, startOffset, ndn_BinaryXml_BLOB)))
-    return error;
-  
-  return NDN_ERROR_success;
-}
-
-ndn_Error ndn_BinaryXmlEncoder_writeTimeMillisecondsDTagElement(struct ndn_BinaryXmlEncoder *self, unsigned int tag, double milliseconds)
-{
-  ndn_Error error;
-  if ((error = ndn_BinaryXmlEncoder_writeElementStartDTag(self, tag)))
-    return error;
-   
-  if ((error = ndn_BinaryXmlEncoder_writeAbsDoubleBigEndianBlob(self, (milliseconds / 1000.0) * 4096.0)))
-    return error;
-    
-  if ((error = ndn_BinaryXmlEncoder_writeElementClose(self)))
-    return error;
-  
-  return NDN_ERROR_success;
-}
diff --git a/src/c/encoding/binary-xml-encoder.h b/src/c/encoding/binary-xml-encoder.h
deleted file mode 100644
index 81fa6b9..0000000
--- a/src/c/encoding/binary-xml-encoder.h
+++ /dev/null
@@ -1,210 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_BINARYXMLENCODER_H
-#define NDN_BINARYXMLENCODER_H
-
-#include "../errors.h"
-#include "../util/dynamic-uint8-array.h"
-#include "../util/blob.h"
-#include "binary-xml.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** An ndn_BinaryXmlEncoder struct is used by all the encoding functions.  You should initialize it with
- *  ndn_BinaryXmlEncoder_initialize.
- */
-struct ndn_BinaryXmlEncoder {
-  struct ndn_DynamicUInt8Array *output; /**< A pointer to a ndn_DynamicUInt8Array which receives the encoded output */
-  size_t offset;                        /**< the offset into output.array for the next encoding */
-};
-
-/**
- * Initialize an ndn_BinaryXmlEncoder_initialize struct with the arguments for initializing the ndn_DynamicUInt8Array.
- * @param self pointer to the ndn_BinaryXmlEncoder struct
- * @param output A pointer to a ndn_DynamicUInt8Array struct which receives the encoded output.  The struct must
- * remain valid during the entire life of this ndn_BinaryXmlEncoder. If the output->realloc
- * function pointer is null, its array must be large enough to receive the entire encoding.
- */
-static inline void ndn_BinaryXmlEncoder_initialize(struct ndn_BinaryXmlEncoder *self, struct ndn_DynamicUInt8Array *output) 
-{
-  self->output = output;
-  self->offset = 0;
-}
-
-/**
- * Encode a header with the type and value and write it to self->output.
- * @param self pointer to the ndn_BinaryXmlEncoder struct
- * @param type the header type
- * @param value the header value
- * @return 0 for success, else an error code
- */
-ndn_Error ndn_BinaryXmlEncoder_encodeTypeAndValue(struct ndn_BinaryXmlEncoder *self, unsigned int type, unsigned int value);
-
-/**
- * Write an element start header using DTAG with the tag to self->output.
- * @param self pointer to the ndn_BinaryXmlEncoder struct
- * @param tag the DTAG tag
- * @return 0 for success, else an error code
- */
-static inline ndn_Error ndn_BinaryXmlEncoder_writeElementStartDTag(struct ndn_BinaryXmlEncoder *self, unsigned int tag) 
-{
-  return ndn_BinaryXmlEncoder_encodeTypeAndValue(self, ndn_BinaryXml_DTAG, tag);
-}
-
-/**
- * Write an element close to self->output.
- * @param self pointer to the ndn_BinaryXmlEncoder struct
- * @return 0 for success, else an error code
- */
-ndn_Error ndn_BinaryXmlEncoder_writeElementClose(struct ndn_BinaryXmlEncoder *self);
-
-/**
- * Write a BLOB header, then the bytes of the blob value to self->output.
- * @param self pointer to the ndn_BinaryXmlEncoder struct
- * @param value A Blob with the array of bytes for the value.
- * @return 0 for success, else an error code
- */
-ndn_Error ndn_BinaryXmlEncoder_writeBlob(struct ndn_BinaryXmlEncoder *self, struct ndn_Blob *value);
-
-/**
- * Write an element start header using DTAG with the tag to self->output, then the blob, then an element close.
- * (If you want to just write the blob, use ndn_BinaryXmlEncoder_writeBlob .)
- * @param self pointer to the ndn_BinaryXmlEncoder struct
- * @param tag the DTAG tag
- * @param value A Blob with the array of bytes for the value.
- * @return 0 for success, else an error code
- */
-ndn_Error ndn_BinaryXmlEncoder_writeBlobDTagElement(struct ndn_BinaryXmlEncoder *self, unsigned int tag, struct ndn_Blob *value);
-
-/**
- * If value or valueLen is 0 then do nothing, otherwise call ndn_BinaryXmlEncoder_writeBlobDTagElement.
- * @param self A pointer to the ndn_BinaryXmlEncoder struct.
- * @param tag The DTAG tag.
- * @param value A Blob with the array of bytes for the value.
- * @return 0 for success, else an error code
- */
-static inline ndn_Error ndn_BinaryXmlEncoder_writeOptionalBlobDTagElement
-  (struct ndn_BinaryXmlEncoder *self, unsigned int tag, struct ndn_Blob *value)
-{
-  if (value->value && value->length > 0)
-    return ndn_BinaryXmlEncoder_writeBlobDTagElement(self, tag, value);
-  else
-    return NDN_ERROR_success;
-}
-
-/**
- * Write a UDATA header, then the bytes of the UDATA value to self->output.
- * @param self pointer to the ndn_BinaryXmlEncoder struct
- * @param value A Blob with the array of bytes for the value.
- * @return 0 for success, else an error code
- */
-ndn_Error ndn_BinaryXmlEncoder_writeUData(struct ndn_BinaryXmlEncoder *self, struct ndn_Blob *value);
-
-/**
- * Write an element start header using DTAG with the tag to self->output, then the UDATA value, then an element close.
- * (If you want to just write the UDATA value, use ndn_BinaryXmlEncoder_writeUData .)
- * @param self pointer to the ndn_BinaryXmlEncoder struct
- * @param tag the DTAG tag
- * @param value A Blob with the array of bytes for the value.
- * @return 0 for success, else an error code
- */
-ndn_Error ndn_BinaryXmlEncoder_writeUDataDTagElement(struct ndn_BinaryXmlEncoder *self, unsigned int tag, struct ndn_Blob *value);
-
-/**
- * If value or valueLen is 0 then do nothing, otherwise call ndn_BinaryXmlEncoder_writeUDataDTagElement.
- * @param self pointer to the ndn_BinaryXmlEncoder struct
- * @param tag the DTAG tag
- * @param value A Blob with the array of bytes for the value.
- * @return 0 for success, else an error code
- */
-static inline ndn_Error ndn_BinaryXmlEncoder_writeOptionalUDataDTagElement
-  (struct ndn_BinaryXmlEncoder *self, unsigned int tag, struct ndn_Blob *value)
-{
-  if (value->value && value->length > 0)
-    return ndn_BinaryXmlEncoder_writeUDataDTagElement(self, tag, value);
-  else
-    return NDN_ERROR_success;
-}
-
-/**
- * Write a UDATA header, then the value as an unsigned decimal integer.
- * @param self pointer to the ndn_BinaryXmlEncoder struct
- * @param value the unsigned int
- * @return 0 for success, else an error code
- */
-ndn_Error ndn_BinaryXmlEncoder_writeUnsignedDecimalInt(struct ndn_BinaryXmlEncoder *self, unsigned int value);
-
-/**
- * Write an element start header using DTAG with the tag to self->output, then the value as an unsigned decimal integer, 
- * then an element close.
- * (If you want to just write the integer, use ndn_BinaryXmlEncoder_writeUnsignedDecimalInt .)
- * @param self pointer to the ndn_BinaryXmlEncoder struct
- * @param tag the DTAG tag
- * @param value the unsigned int
- * @return 0 for success, else an error code
- */
-ndn_Error ndn_BinaryXmlEncoder_writeUnsignedDecimalIntDTagElement(struct ndn_BinaryXmlEncoder *self, unsigned int tag, unsigned int value);
-
-/**
- * If value is negative then do nothing, otherwise call ndn_BinaryXmlEncoder_writeUnsignedDecimalIntDTagElement.
- * @param self pointer to the ndn_BinaryXmlEncoder struct
- * @param tag the DTAG tag
- * @param value negative for none, otherwise use (unsigned int)value
- * @return 0 for success, else an error code
- */
-static inline ndn_Error ndn_BinaryXmlEncoder_writeOptionalUnsignedDecimalIntDTagElement(struct ndn_BinaryXmlEncoder *self, unsigned int tag, int value)
-{
-  if (value >= 0)
-    return ndn_BinaryXmlEncoder_writeUnsignedDecimalIntDTagElement(self, tag, (size_t)value);
-  else
-    return NDN_ERROR_success;
-}
-
-/**
- * Write a BLOB header, then the absolute value of value, rounded to an integer, to self->output encoded as big endian.
- * @param self pointer to the ndn_BinaryXmlEncoder struct
- * @param value the double to encode as big endian.  If value is 0, the big endian encoding has zero bytes.
- * The value is converted to absolute value.
- * @return 0 for success, else an error code
- */
-ndn_Error ndn_BinaryXmlEncoder_writeAbsDoubleBigEndianBlob(struct ndn_BinaryXmlEncoder *self, double value);
-
-/**
- * Write an element start header using DTAG with the tag to self->output, then the absolute value of milliseconds
- * as a big endian BLOB converted to 4096 ticks per second, then an element close.
- * (If you want to just write the integer, use ndn_BinaryXmlEncoder_writeUnsignedDecimalInt .)
- * @param self pointer to the ndn_BinaryXmlEncoder struct
- * @param tag the DTAG tag
- * @param milliseconds the the number of milliseconds
- * @return 0 for success, else an error code
- */
-ndn_Error ndn_BinaryXmlEncoder_writeTimeMillisecondsDTagElement(struct ndn_BinaryXmlEncoder *self, unsigned int tag, double milliseconds);
-
-/**
- * If milliseconds is negative then do nothing, otherwise call ndn_BinaryXmlEncoder_writeTimeMillisecondsDTagElement.
- * @param self pointer to the ndn_BinaryXmlEncoder struct
- * @param tag the DTAG tag
- * @param milliseconds negative for none, otherwise the number of milliseconds
- * @return 0 for success, else an error code
- */
-static inline ndn_Error ndn_BinaryXmlEncoder_writeOptionalTimeMillisecondsDTagElement
-  (struct ndn_BinaryXmlEncoder *self, unsigned int tag, double milliseconds)
-{
-  if (milliseconds >= 0)
-    return ndn_BinaryXmlEncoder_writeTimeMillisecondsDTagElement(self, tag, milliseconds);
-  else
-    return NDN_ERROR_success;
-}
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
diff --git a/src/c/encoding/binary-xml-forwarding-entry.c b/src/c/encoding/binary-xml-forwarding-entry.c
deleted file mode 100644
index d7ed52a..0000000
--- a/src/c/encoding/binary-xml-forwarding-entry.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * Derived from ForwardingEntry.js by Meki Cheraoui.
- * See COPYING for copyright and distribution information.
- */
-
-#include "binary-xml.h"
-#include "binary-xml-forwarding-entry.h"
-#include "binary-xml-name.h"
-#include "binary-xml-key.h"
-#include "binary-xml-publisher-public-key-digest.h"
-
-ndn_Error ndn_encodeBinaryXmlForwardingEntry(struct ndn_ForwardingEntry *forwardingEntry, struct ndn_BinaryXmlEncoder *encoder)
-{
-  ndn_Error error;
-  if ((error = ndn_BinaryXmlEncoder_writeElementStartDTag(encoder, ndn_BinaryXml_DTag_ForwardingEntry)))
-    return error;
-    
-  if ((error = ndn_BinaryXmlEncoder_writeOptionalUDataDTagElement
-      (encoder, ndn_BinaryXml_DTag_Action, &forwardingEntry->action)))
-    return error;
-  if ((error = ndn_encodeBinaryXmlName(&forwardingEntry->prefix, encoder)))
-    return error;
-  // This will skip encoding if there is no publisherPublicKeyDigest.
-  if ((error = ndn_encodeBinaryXmlPublisherPublicKeyDigest(&forwardingEntry->publisherPublicKeyDigest, encoder)))
-    return error;
-  if ((error = ndn_BinaryXmlEncoder_writeOptionalUnsignedDecimalIntDTagElement
-      (encoder, ndn_BinaryXml_DTag_FaceID, forwardingEntry->faceId)))
-    return error;
-  if ((error = ndn_BinaryXmlEncoder_writeUnsignedDecimalIntDTagElement
-      (encoder, ndn_BinaryXml_DTag_ForwardingFlags, 
-       ndn_ForwardingFlags_getForwardingEntryFlags(&forwardingEntry->forwardingFlags))))
-    return error;
-  if ((error = ndn_BinaryXmlEncoder_writeOptionalUnsignedDecimalIntDTagElement
-      (encoder, ndn_BinaryXml_DTag_FreshnessSeconds, forwardingEntry->freshnessSeconds)))
-    return error;
-  
-  if ((error = ndn_BinaryXmlEncoder_writeElementClose(encoder)))
-    return error;
-  
-  return NDN_ERROR_success;  
-}
-
-ndn_Error ndn_decodeBinaryXmlForwardingEntry(struct ndn_ForwardingEntry *forwardingEntry, struct ndn_BinaryXmlDecoder *decoder)
-{
-  ndn_Error error;
-  if ((error = ndn_BinaryXmlDecoder_readElementStartDTag(decoder, ndn_BinaryXml_DTag_ForwardingEntry)))
-    return error;
-    
-  if ((error = ndn_BinaryXmlDecoder_readOptionalUDataDTagElement
-      (decoder, ndn_BinaryXml_DTag_Action, &forwardingEntry->action)))
-    return error;
-  if ((error = ndn_decodeBinaryXmlName(&forwardingEntry->prefix, decoder)))
-    return error;
-  if ((error = ndn_decodeOptionalBinaryXmlPublisherPublicKeyDigest(&forwardingEntry->publisherPublicKeyDigest, decoder)))
-    return error;
-  if ((error = ndn_BinaryXmlDecoder_readOptionalUnsignedIntegerDTagElement
-      (decoder, ndn_BinaryXml_DTag_FaceID, &forwardingEntry->faceId)))
-    return error;
-  
-  int forwardingEntryFlags;
-  if ((error = ndn_BinaryXmlDecoder_readOptionalUnsignedIntegerDTagElement
-      (decoder, ndn_BinaryXml_DTag_ForwardingFlags, &forwardingEntryFlags)))
-    return error;
-  if (forwardingEntryFlags >= 0)
-    ndn_ForwardingFlags_setForwardingEntryFlags(&forwardingEntry->forwardingFlags, forwardingEntryFlags);
-  else
-    // This sets the default flags.
-    ndn_ForwardingFlags_initialize(&forwardingEntry->forwardingFlags);
-  
-  if ((error = ndn_BinaryXmlDecoder_readOptionalUnsignedIntegerDTagElement
-      (decoder, ndn_BinaryXml_DTag_FreshnessSeconds, &forwardingEntry->freshnessSeconds)))
-    return error;
-
-  if ((error = ndn_BinaryXmlDecoder_readElementClose(decoder)))
-    return error;
-  
-  return NDN_ERROR_success;
-}
diff --git a/src/c/encoding/binary-xml-forwarding-entry.h b/src/c/encoding/binary-xml-forwarding-entry.h
deleted file mode 100644
index b08f292..0000000
--- a/src/c/encoding/binary-xml-forwarding-entry.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_BINARY_XML_FORWARDING_ENTRY_H
-#define NDN_BINARY_XML_FORWARDING_ENTRY_H
-
-#include "../errors.h"
-#include "../forwarding-entry.h"
-#include "binary-xml-encoder.h"
-#include "binary-xml-decoder.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * Encode the ndn_ForwardingEntry struct using Binary XML.
- * @param forwardingEntry pointer to the ndn_ForwardingEntry struct
- * @param encoder pointer to the ndn_BinaryXmlEncoder struct
- * @return 0 for success, else an error code
- */
-ndn_Error ndn_encodeBinaryXmlForwardingEntry(struct ndn_ForwardingEntry *forwardingEntry, struct ndn_BinaryXmlEncoder *encoder);
-
-/**
- * Expect the next element to be a Binary XML ForwardingEntry and decode into the ndn_ForwardingEntry struct.
- * @param forwardingEntry pointer to the ndn_ForwardingEntry struct
- * @param decoder pointer to the ndn_BinaryXmlDecoder struct
- * @return 0 for success, else an error code, including if the next element is not KeyLocator.
- */
-ndn_Error ndn_decodeBinaryXmlForwardingEntry(struct ndn_ForwardingEntry *forwardingEntry, struct ndn_BinaryXmlDecoder *decoder);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/src/c/encoding/binary-xml-interest.c b/src/c/encoding/binary-xml-interest.c
deleted file mode 100644
index 00da3e4..0000000
--- a/src/c/encoding/binary-xml-interest.c
+++ /dev/null
@@ -1,220 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * Derived from Interest.js by Meki Cheraoui.
- * See COPYING for copyright and distribution information.
- */
-
-#include "binary-xml-encoder.h"
-#include "binary-xml-decoder.h"
-#include "binary-xml-name.h"
-#include "binary-xml-publisher-public-key-digest.h"
-#include "binary-xml-interest.h"
-
-static ndn_Error encodeExclude(struct ndn_Exclude *exclude, struct ndn_BinaryXmlEncoder *encoder)
-{
-  if (exclude->nEntries == 0)
-    return NDN_ERROR_success;
-  
-  ndn_Error error;
-  if ((error = ndn_BinaryXmlEncoder_writeElementStartDTag(encoder, ndn_BinaryXml_DTag_Exclude)))
-    return error;
-  
-  // TODO: Do we want to order the components (except for ANY)?
-  size_t i;
-  for (i = 0; i < exclude->nEntries; ++i) {
-    struct ndn_ExcludeEntry *entry = &exclude->entries[i];
-    
-    if (entry->type == ndn_Exclude_COMPONENT) {
-      if ((error = ndn_BinaryXmlEncoder_writeBlobDTagElement(encoder, ndn_BinaryXml_DTag_Component, &entry->component.value)))
-        return error;
-    }
-    else if (entry->type == ndn_Exclude_ANY) {
-      if ((error = ndn_BinaryXmlEncoder_writeElementStartDTag(encoder, ndn_BinaryXml_DTag_Any)))
-        return error;
-      if ((error = ndn_BinaryXmlEncoder_writeElementClose(encoder)))
-        return error;
-    }
-    else
-      return NDN_ERROR_unrecognized_ndn_ExcludeType;
-  }
-  
-  if ((error = ndn_BinaryXmlEncoder_writeElementClose(encoder)))
-    return error;
-  
-  return NDN_ERROR_success;  
-}
-
-static ndn_Error decodeExclude(struct ndn_Exclude *exclude, struct ndn_BinaryXmlDecoder *decoder)
-{
-  ndn_Error error;
-  if ((error = ndn_BinaryXmlDecoder_readElementStartDTag(decoder, ndn_BinaryXml_DTag_Exclude)))
-    return error;
-    
-  exclude->nEntries = 0;
-  while (1) {
-    int gotExpectedTag;
-    
-    if ((error = ndn_BinaryXmlDecoder_peekDTag(decoder, ndn_BinaryXml_DTag_Component, &gotExpectedTag)))
-      return error;    
-    if (gotExpectedTag) {
-      // Component
-      struct ndn_Blob component;
-      if ((error = ndn_BinaryXmlDecoder_readBinaryDTagElement(decoder, ndn_BinaryXml_DTag_Component, 0, &component)))
-        return error;
-    
-      // Add the component entry.
-      if (exclude->nEntries >= exclude->maxEntries)
-        return NDN_ERROR_read_an_entry_past_the_maximum_number_of_entries_allowed_in_the_exclude;
-      ndn_ExcludeEntry_initialize(exclude->entries + exclude->nEntries, ndn_Exclude_COMPONENT, component.value, component.length);
-      ++exclude->nEntries;
-
-      continue;
-    }
-    
-    if ((error = ndn_BinaryXmlDecoder_peekDTag(decoder, ndn_BinaryXml_DTag_Any, &gotExpectedTag)))
-      return error;    
-    if (gotExpectedTag) {
-      // Any
-      if ((error = ndn_BinaryXmlDecoder_readElementStartDTag(decoder, ndn_BinaryXml_DTag_Any)))
-        return error;
-      if ((error = ndn_BinaryXmlDecoder_readElementClose(decoder)))
-        return error;
-    
-      // Add the any entry.
-      if (exclude->nEntries >= exclude->maxEntries)
-        return NDN_ERROR_read_an_entry_past_the_maximum_number_of_entries_allowed_in_the_exclude;
-      ndn_ExcludeEntry_initialize(exclude->entries + exclude->nEntries, ndn_Exclude_ANY, 0, 0);
-      ++exclude->nEntries;
-
-      continue;
-    }
-    
-    if ((error = ndn_BinaryXmlDecoder_peekDTag(decoder, ndn_BinaryXml_DTag_Bloom, &gotExpectedTag)))
-      return error;    
-    if (gotExpectedTag) {
-      // Skip the Bloom and treat it as Any.
-      struct ndn_Blob value;
-      if ((error = ndn_BinaryXmlDecoder_readBinaryDTagElement(decoder, ndn_BinaryXml_DTag_Bloom, 0, &value)))
-        return error;
-    
-      // Add the any entry.
-      if (exclude->nEntries >= exclude->maxEntries)
-        return NDN_ERROR_read_an_entry_past_the_maximum_number_of_entries_allowed_in_the_exclude;
-      ndn_ExcludeEntry_initialize(exclude->entries + exclude->nEntries, ndn_Exclude_ANY, 0, 0);
-      ++exclude->nEntries;
-
-      continue;
-    }
-    
-    // Else no more entries.
-    break;
-  }
-  
-  if ((error = ndn_BinaryXmlDecoder_readElementClose(decoder)))
-    return error;
-  
-  return NDN_ERROR_success;
-}
-
-ndn_Error ndn_encodeBinaryXmlInterest(struct ndn_Interest *interest, struct ndn_BinaryXmlEncoder *encoder)
-{
-  ndn_Error error;
-  if ((error = ndn_BinaryXmlEncoder_writeElementStartDTag(encoder, ndn_BinaryXml_DTag_Interest)))
-    return error;
-    
-  if ((error = ndn_encodeBinaryXmlName(&interest->name, encoder)))
-    return error;
-  
-  if ((error = ndn_BinaryXmlEncoder_writeOptionalUnsignedDecimalIntDTagElement
-      (encoder, ndn_BinaryXml_DTag_MinSuffixComponents, interest->minSuffixComponents)))
-    return error;
-  if ((error = ndn_BinaryXmlEncoder_writeOptionalUnsignedDecimalIntDTagElement
-      (encoder, ndn_BinaryXml_DTag_MaxSuffixComponents, interest->maxSuffixComponents)))
-    return error;
-    
-  // This will skip encoding if there is no publisherPublicKeyDigest.
-  if ((error = ndn_encodeBinaryXmlPublisherPublicKeyDigest(&interest->publisherPublicKeyDigest, encoder)))
-    return error;
-  
-  // This will skip encoding if there is no exclude.
-  if ((error = encodeExclude(&interest->exclude, encoder)))
-    return error;
-
-  if ((error = ndn_BinaryXmlEncoder_writeOptionalUnsignedDecimalIntDTagElement
-      (encoder, ndn_BinaryXml_DTag_ChildSelector, interest->childSelector)))
-    return error;
-  if (interest->answerOriginKind >= 0 && interest->answerOriginKind != ndn_Interest_DEFAULT_ANSWER_ORIGIN_KIND) {
-    if ((error = ndn_BinaryXmlEncoder_writeUnsignedDecimalIntDTagElement
-        (encoder, ndn_BinaryXml_DTag_AnswerOriginKind, (unsigned int)interest->answerOriginKind)))
-      return error;
-  }
-  if ((error = ndn_BinaryXmlEncoder_writeOptionalUnsignedDecimalIntDTagElement
-      (encoder, ndn_BinaryXml_DTag_Scope, interest->scope)))
-    return error;
-  
-  if ((error = ndn_BinaryXmlEncoder_writeOptionalTimeMillisecondsDTagElement
-      (encoder, ndn_BinaryXml_DTag_InterestLifetime, interest->interestLifetimeMilliseconds)))
-    return error;
-  
-  if ((error = ndn_BinaryXmlEncoder_writeOptionalBlobDTagElement(encoder, ndn_BinaryXml_DTag_Nonce, &interest->nonce)))
-    return error;
-  
-  if ((error = ndn_BinaryXmlEncoder_writeElementClose(encoder)))
-    return error;
-  
-  return NDN_ERROR_success;  
-}
-
-ndn_Error ndn_decodeBinaryXmlInterest(struct ndn_Interest *interest, struct ndn_BinaryXmlDecoder *decoder)
-{
-  ndn_Error error;
-  if ((error = ndn_BinaryXmlDecoder_readElementStartDTag(decoder, ndn_BinaryXml_DTag_Interest)))
-    return error;
-    
-  if ((error = ndn_decodeBinaryXmlName(&interest->name, decoder)))
-    return error;
-       
-  if ((error = ndn_BinaryXmlDecoder_readOptionalUnsignedIntegerDTagElement
-      (decoder, ndn_BinaryXml_DTag_MinSuffixComponents, &interest->minSuffixComponents)))
-    return error;
-  if ((error = ndn_BinaryXmlDecoder_readOptionalUnsignedIntegerDTagElement
-      (decoder, ndn_BinaryXml_DTag_MaxSuffixComponents, &interest->maxSuffixComponents)))
-    return error;
-  
-  if ((error = ndn_decodeOptionalBinaryXmlPublisherPublicKeyDigest(&interest->publisherPublicKeyDigest, decoder)))
-    return error;
-  
-  int gotExpectedTag;
-  if ((error = ndn_BinaryXmlDecoder_peekDTag(decoder, ndn_BinaryXml_DTag_Exclude, &gotExpectedTag)))
-    return error;
-  if (gotExpectedTag) {
-    if ((error = decodeExclude(&interest->exclude, decoder)))
-      return error;
-  }
-  else
-    interest->exclude.nEntries = 0;
-  
-  if ((error = ndn_BinaryXmlDecoder_readOptionalUnsignedIntegerDTagElement
-      (decoder, ndn_BinaryXml_DTag_ChildSelector, &interest->childSelector)))
-    return error;
-  if ((error = ndn_BinaryXmlDecoder_readOptionalUnsignedIntegerDTagElement
-      (decoder, ndn_BinaryXml_DTag_AnswerOriginKind, &interest->answerOriginKind)))
-    return error;
-  if ((error = ndn_BinaryXmlDecoder_readOptionalUnsignedIntegerDTagElement
-      (decoder, ndn_BinaryXml_DTag_Scope, &interest->scope)))
-    return error;
-  
-  if ((error = ndn_BinaryXmlDecoder_readOptionalTimeMillisecondsDTagElement
-       (decoder, ndn_BinaryXml_DTag_InterestLifetime, &interest->interestLifetimeMilliseconds)))
-    return error;
-  
-  if ((error = ndn_BinaryXmlDecoder_readOptionalBinaryDTagElement
-      (decoder, ndn_BinaryXml_DTag_Nonce, 0, &interest->nonce)))
-    return error;
-
-  if ((error = ndn_BinaryXmlDecoder_readElementClose(decoder)))
-    return error;
-  
-  return NDN_ERROR_success;
-}
diff --git a/src/c/encoding/binary-xml-interest.h b/src/c/encoding/binary-xml-interest.h
deleted file mode 100644
index 532afe4..0000000
--- a/src/c/encoding/binary-xml-interest.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_BINARYXMLINTEREST_H
-#define NDN_BINARYXMLINTEREST_H
-
-#include "../errors.h"
-#include "../interest.h"
-#include "binary-xml-encoder.h"
-#include "binary-xml-decoder.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-ndn_Error ndn_encodeBinaryXmlInterest(struct ndn_Interest *interest, struct ndn_BinaryXmlEncoder *encoder);
-
-ndn_Error ndn_decodeBinaryXmlInterest(struct ndn_Interest *interest, struct ndn_BinaryXmlDecoder *decoder);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
diff --git a/src/c/encoding/binary-xml-key.c b/src/c/encoding/binary-xml-key.c
deleted file mode 100644
index bc55911..0000000
--- a/src/c/encoding/binary-xml-key.c
+++ /dev/null
@@ -1,189 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * Derived from Key.js by Meki Cheraoui.
- * See COPYING for copyright and distribution information.
- */
-
-#include "binary-xml.h"
-#include "binary-xml-structure-decoder.h"
-#include "binary-xml-key.h"
-#include "binary-xml-name.h"
-
-static ndn_Error decodeKeyNameData(struct ndn_KeyLocator *keyLocator, struct ndn_BinaryXmlDecoder *decoder)
-{
-  int gotExpectedTag;
-  ndn_Error error; 
-  if ((error = ndn_BinaryXmlDecoder_peekDTag(decoder, ndn_BinaryXml_DTag_PublisherPublicKeyDigest, &gotExpectedTag)))
-    return error;
-  if (gotExpectedTag) {
-    keyLocator->keyNameType = ndn_KeyNameType_PUBLISHER_PUBLIC_KEY_DIGEST;
-    if ((error = ndn_BinaryXmlDecoder_readBinaryDTagElement
-        (decoder, ndn_BinaryXml_DTag_PublisherPublicKeyDigest, 0, &keyLocator->keyData)))
-      return error;
-  }
-  else {
-    if ((error = ndn_BinaryXmlDecoder_peekDTag(decoder, ndn_BinaryXml_DTag_PublisherCertificateDigest, &gotExpectedTag)))
-      return error;
-    if (gotExpectedTag) {
-      keyLocator->keyNameType = ndn_KeyNameType_PUBLISHER_CERTIFICATE_DIGEST;
-      if ((error = ndn_BinaryXmlDecoder_readBinaryDTagElement
-          (decoder, ndn_BinaryXml_DTag_PublisherCertificateDigest, 0, &keyLocator->keyData)))
-        return error;
-    }
-    else {
-      if ((error = ndn_BinaryXmlDecoder_peekDTag(decoder, ndn_BinaryXml_DTag_PublisherIssuerKeyDigest, &gotExpectedTag)))
-        return error;
-      if (gotExpectedTag) {
-        keyLocator->keyNameType = ndn_KeyNameType_PUBLISHER_ISSUER_KEY_DIGEST;
-        if ((error = ndn_BinaryXmlDecoder_readBinaryDTagElement
-            (decoder, ndn_BinaryXml_DTag_PublisherIssuerKeyDigest, 0, &keyLocator->keyData)))
-          return error;
-      }
-      else {
-        if ((error = ndn_BinaryXmlDecoder_peekDTag(decoder, ndn_BinaryXml_DTag_PublisherIssuerCertificateDigest, &gotExpectedTag)))
-          return error;
-        if (gotExpectedTag) {
-          keyLocator->keyNameType = ndn_KeyNameType_PUBLISHER_ISSUER_CERTIFICATE_DIGEST;
-          if ((error = ndn_BinaryXmlDecoder_readBinaryDTagElement
-              (decoder, ndn_BinaryXml_DTag_PublisherIssuerCertificateDigest, 0, &keyLocator->keyData)))
-            return error;
-        }
-        else {
-          // Key name data is omitted.
-          keyLocator->keyNameType = -1;
-          keyLocator->keyData.length = 0;
-        }
-      }
-    }
-  }
-  
-  return NDN_ERROR_success;
-}
-
-ndn_Error ndn_encodeBinaryXmlKeyLocator(struct ndn_KeyLocator *keyLocator, struct ndn_BinaryXmlEncoder *encoder)
-{
-  if ((int)keyLocator->type < 0)
-    return NDN_ERROR_success;
-
-  ndn_Error error;
-  if ((error = ndn_BinaryXmlEncoder_writeElementStartDTag(encoder, ndn_BinaryXml_DTag_KeyLocator)))
-    return error;
-
-  if (keyLocator->type == ndn_KeyLocatorType_KEY) {
-    if ((error = ndn_BinaryXmlEncoder_writeBlobDTagElement(encoder, ndn_BinaryXml_DTag_Key, &keyLocator->keyData)))
-      return error;    
-  }
-  else if (keyLocator->type == ndn_KeyLocatorType_CERTIFICATE) {
-    if ((error = ndn_BinaryXmlEncoder_writeBlobDTagElement(encoder, ndn_BinaryXml_DTag_Certificate, &keyLocator->keyData)))
-      return error;    
-  }
-  else if (keyLocator->type == ndn_KeyLocatorType_KEYNAME) {
-    if ((error = ndn_BinaryXmlEncoder_writeElementStartDTag(encoder, ndn_BinaryXml_DTag_KeyName)))
-      return error;
-    if ((error = ndn_encodeBinaryXmlName(&keyLocator->keyName, encoder)))
-      return error;
-    
-    if ((int)keyLocator->keyNameType >= 0 && keyLocator->keyData.length > 0) {
-      if (keyLocator->keyNameType == ndn_KeyNameType_PUBLISHER_PUBLIC_KEY_DIGEST) {
-        if ((error = ndn_BinaryXmlEncoder_writeBlobDTagElement
-            (encoder, ndn_BinaryXml_DTag_PublisherPublicKeyDigest, &keyLocator->keyData)))
-          return error;    
-      }
-      else if (keyLocator->keyNameType == ndn_KeyNameType_PUBLISHER_CERTIFICATE_DIGEST) {
-        if ((error = ndn_BinaryXmlEncoder_writeBlobDTagElement
-            (encoder, ndn_BinaryXml_DTag_PublisherCertificateDigest, &keyLocator->keyData)))
-          return error;    
-      }
-      else if (keyLocator->keyNameType == ndn_KeyNameType_PUBLISHER_ISSUER_KEY_DIGEST) {
-        if ((error = ndn_BinaryXmlEncoder_writeBlobDTagElement
-            (encoder, ndn_BinaryXml_DTag_PublisherIssuerKeyDigest, &keyLocator->keyData)))
-          return error;    
-      }
-      else if (keyLocator->keyNameType == ndn_KeyNameType_PUBLISHER_ISSUER_CERTIFICATE_DIGEST) {
-        if ((error = ndn_BinaryXmlEncoder_writeBlobDTagElement
-            (encoder, ndn_BinaryXml_DTag_PublisherIssuerCertificateDigest, &keyLocator->keyData)))
-          return error;    
-      }
-      else
-        return NDN_ERROR_unrecognized_ndn_KeyNameType;
-    }
-    
-    if ((error = ndn_BinaryXmlEncoder_writeElementClose(encoder)))
-      return error;
-  }
-  else
-    return NDN_ERROR_unrecognized_ndn_KeyLocatorType;
-  
-  if ((error = ndn_BinaryXmlEncoder_writeElementClose(encoder)))
-    return error;
-  
-  return NDN_ERROR_success;
-}
-
-ndn_Error ndn_decodeBinaryXmlKeyLocator(struct ndn_KeyLocator *keyLocator, struct ndn_BinaryXmlDecoder *decoder)
-{
-  ndn_Error error;
-  if ((error = ndn_BinaryXmlDecoder_readElementStartDTag(decoder, ndn_BinaryXml_DTag_KeyLocator)))
-    return error;
-
-  int gotExpectedTag;
-  if ((error = ndn_BinaryXmlDecoder_peekDTag(decoder, ndn_BinaryXml_DTag_Key, &gotExpectedTag)))
-    return error;
-  if (gotExpectedTag) {
-    keyLocator->type = ndn_KeyLocatorType_KEY;
-    
-    if ((error = ndn_BinaryXmlDecoder_readBinaryDTagElement(decoder, ndn_BinaryXml_DTag_Key, 0, &keyLocator->keyData)))
-      return error;
-  }
-  else {
-    if ((error = ndn_BinaryXmlDecoder_peekDTag(decoder, ndn_BinaryXml_DTag_Certificate, &gotExpectedTag)))
-      return error;
-    if (gotExpectedTag) {
-      keyLocator->type = ndn_KeyLocatorType_CERTIFICATE;
-    
-      if ((error = ndn_BinaryXmlDecoder_readBinaryDTagElement
-          (decoder, ndn_BinaryXml_DTag_Certificate, 0, &keyLocator->keyData)))
-        return error;
-    }
-    else {
-      if ((error = ndn_BinaryXmlDecoder_peekDTag(decoder, ndn_BinaryXml_DTag_KeyName, &gotExpectedTag)))
-        return error;
-      if (gotExpectedTag) {
-        keyLocator->type = ndn_KeyLocatorType_KEYNAME;
-        
-        if ((error = ndn_BinaryXmlDecoder_readElementStartDTag(decoder, ndn_BinaryXml_DTag_KeyName)))
-          return error;
-        if ((error = ndn_decodeBinaryXmlName(&keyLocator->keyName, decoder)))
-          return error;
-        if ((error = decodeKeyNameData(keyLocator, decoder)))
-          return error;        
-        if ((error = ndn_BinaryXmlDecoder_readElementClose(decoder)))
-          return error;
-      }
-      else
-        return NDN_ERROR_decodeBinaryXmlKeyLocator_unrecognized_key_locator_type;
-    }
-  }
-
-  if ((error = ndn_BinaryXmlDecoder_readElementClose(decoder)))
-    return error;
-  
-  return NDN_ERROR_success;
-}
-
-ndn_Error ndn_decodeOptionalBinaryXmlKeyLocator(struct ndn_KeyLocator *keyLocator, struct ndn_BinaryXmlDecoder *decoder)
-{
-  int gotExpectedTag;
-  ndn_Error error; 
-  if ((error = ndn_BinaryXmlDecoder_peekDTag(decoder, ndn_BinaryXml_DTag_KeyLocator, &gotExpectedTag)))
-    return error;
-  if (gotExpectedTag) {
-    if ((error = ndn_decodeBinaryXmlKeyLocator(keyLocator, decoder)))
-      return error;
-  }
-  else
-    ndn_KeyLocator_initialize(keyLocator, keyLocator->keyName.components, keyLocator->keyName.maxComponents);
-  
-  return NDN_ERROR_success;
-}
diff --git a/src/c/encoding/binary-xml-key.h b/src/c/encoding/binary-xml-key.h
deleted file mode 100644
index efd8f54..0000000
--- a/src/c/encoding/binary-xml-key.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_BINARYXMLKEY_H
-#define NDN_BINARYXMLKEY_H
-
-#include "../key-locator.h"
-#include "../errors.h"
-#include "binary-xml-encoder.h"
-#include "binary-xml-decoder.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * Encode the ndn_KeyLocator struct using Binary XML.  If keyLocator->type is -1, then do nothing. 
- * @param keyLocator pointer to the ndn_KeyLocator struct
- * @param encoder pointer to the ndn_BinaryXmlEncoder struct
- * @return 0 for success, else an error code
- */
-ndn_Error ndn_encodeBinaryXmlKeyLocator(struct ndn_KeyLocator *keyLocator, struct ndn_BinaryXmlEncoder *encoder);
-
-/**
- * Expect the next element to be a Binary XML KeyLocator and decode into the ndn_KeyLocator struct.
- * @param keyLocator pointer to the ndn_KeyLocator struct
- * @param decoder pointer to the ndn_BinaryXmlDecoder struct
- * @return 0 for success, else an error code, including if the next element is not KeyLocator.
- */
-ndn_Error ndn_decodeBinaryXmlKeyLocator(struct ndn_KeyLocator *keyLocator, struct ndn_BinaryXmlDecoder *decoder);
-
-/**
- * Peek the next element and if it is a Binary XML KeyLocator and decode into the ndn_KeyLocator struct.
- * Otherwise, set the ndn_KeyLocator struct to none.
- * @param keyLocator pointer to the ndn_KeyLocator struct
- * @param decoder pointer to the ndn_BinaryXmlDecoder struct
- * @return 0 for success, else an error code, including if the next element is not KeyLocator.
- */
-ndn_Error ndn_decodeOptionalBinaryXmlKeyLocator(struct ndn_KeyLocator *keyLocator, struct ndn_BinaryXmlDecoder *decoder);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/src/c/encoding/binary-xml-name.c b/src/c/encoding/binary-xml-name.c
deleted file mode 100644
index 8df81c3..0000000
--- a/src/c/encoding/binary-xml-name.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * Derived from Name.js by Meki Cheraoui.
- * See COPYING for copyright and distribution information.
- */
-
-#include "binary-xml-encoder.h"
-#include "binary-xml-decoder.h"
-#include "binary-xml-name.h"
-
-ndn_Error ndn_encodeBinaryXmlName(struct ndn_Name *name, struct ndn_BinaryXmlEncoder *encoder)
-{
-  ndn_Error error;
-  if ((error = ndn_BinaryXmlEncoder_writeElementStartDTag(encoder, ndn_BinaryXml_DTag_Name)))
-    return error;
-  
-  size_t i;
-  for (i = 0; i < name->nComponents; ++i) {
-    if ((error = ndn_BinaryXmlEncoder_writeBlobDTagElement(encoder, ndn_BinaryXml_DTag_Component, &name->components[i].value)))
-      return error;
-  }
-  
-  if ((error = ndn_BinaryXmlEncoder_writeElementClose(encoder)))
-    return error;
-  
-  return NDN_ERROR_success;
-}
-
-ndn_Error ndn_decodeBinaryXmlName(struct ndn_Name *name, struct ndn_BinaryXmlDecoder *decoder)
-{
-  ndn_Error error;
-  if ((error = ndn_BinaryXmlDecoder_readElementStartDTag(decoder, ndn_BinaryXml_DTag_Name)))
-    return error;
-    
-  name->nComponents = 0;
-  while (1) {
-    int gotExpectedTag;
-    if ((error = ndn_BinaryXmlDecoder_peekDTag(decoder, ndn_BinaryXml_DTag_Component, &gotExpectedTag)))
-      return error;
-    
-    if (!gotExpectedTag)
-      // No more components.
-      break;
-    
-    struct ndn_Blob component;
-    if ((error = ndn_BinaryXmlDecoder_readBinaryDTagElement(decoder, ndn_BinaryXml_DTag_Component, 0, &component)))
-      return error;
-    if ((error = ndn_Name_appendBlob(name, &component)))
-      return error;
-  }
-  
-  if ((error = ndn_BinaryXmlDecoder_readElementClose(decoder)))
-    return error;
-  
-  return NDN_ERROR_success;
-}
diff --git a/src/c/encoding/binary-xml-name.h b/src/c/encoding/binary-xml-name.h
deleted file mode 100644
index 369dfc5..0000000
--- a/src/c/encoding/binary-xml-name.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_BINARYXMLNAME_H
-#define NDN_BINARYXMLNAME_H
-
-#include "../errors.h"
-#include "../name.h"
-#include "binary-xml-encoder.h"
-#include "binary-xml-decoder.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-ndn_Error ndn_encodeBinaryXmlName(struct ndn_Name *name, struct ndn_BinaryXmlEncoder *encoder);
-
-ndn_Error ndn_decodeBinaryXmlName(struct ndn_Name *name, struct ndn_BinaryXmlDecoder *decoder);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
diff --git a/src/c/encoding/binary-xml-publisher-public-key-digest.c b/src/c/encoding/binary-xml-publisher-public-key-digest.c
deleted file mode 100644
index 4748147..0000000
--- a/src/c/encoding/binary-xml-publisher-public-key-digest.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * Derived from PublisherPublicKeyDigest.js by Meki Cheraoui.
- * See COPYING for copyright and distribution information.
- */
-
-#include "binary-xml.h"
-#include "binary-xml-publisher-public-key-digest.h"
-
-ndn_Error ndn_encodeBinaryXmlPublisherPublicKeyDigest
-  (struct ndn_PublisherPublicKeyDigest *publisherPublicKeyDigest, struct ndn_BinaryXmlEncoder *encoder)
-{  
-  if (!publisherPublicKeyDigest->publisherPublicKeyDigest.value || publisherPublicKeyDigest->publisherPublicKeyDigest.length == 0)
-    return NDN_ERROR_success;
-  
-  ndn_Error error;
-  if ((error = ndn_BinaryXmlEncoder_writeBlobDTagElement
-      (encoder, ndn_BinaryXml_DTag_PublisherPublicKeyDigest, &publisherPublicKeyDigest->publisherPublicKeyDigest)))
-    return error;
-  
-  return NDN_ERROR_success;
-}
-
-ndn_Error ndn_decodeBinaryXmlPublisherPublicKeyDigest
-  (struct ndn_PublisherPublicKeyDigest *publisherPublicKeyDigest, struct ndn_BinaryXmlDecoder *decoder)
-{
-  ndn_Error error; 
-  if ((error = ndn_BinaryXmlDecoder_readBinaryDTagElement
-      (decoder, ndn_BinaryXml_DTag_PublisherPublicKeyDigest, 0, &publisherPublicKeyDigest->publisherPublicKeyDigest)))
-    return error;
-  
-  return NDN_ERROR_success;
-}
-
-ndn_Error ndn_decodeOptionalBinaryXmlPublisherPublicKeyDigest
-  (struct ndn_PublisherPublicKeyDigest *publisherPublicKeyDigest, struct ndn_BinaryXmlDecoder *decoder)
-{
-  int gotExpectedTag;
-  ndn_Error error; 
-  if ((error = ndn_BinaryXmlDecoder_peekDTag(decoder, ndn_BinaryXml_DTag_PublisherPublicKeyDigest, &gotExpectedTag)))
-    return error;
-  if (gotExpectedTag) {
-    if ((error = ndn_decodeBinaryXmlPublisherPublicKeyDigest(publisherPublicKeyDigest, decoder)))
-      return error;
-  }
-  else {
-    publisherPublicKeyDigest->publisherPublicKeyDigest.value = 0;
-    publisherPublicKeyDigest->publisherPublicKeyDigest.length = 0;
-  }
-  
-  return NDN_ERROR_success;
-}
diff --git a/src/c/encoding/binary-xml-publisher-public-key-digest.h b/src/c/encoding/binary-xml-publisher-public-key-digest.h
deleted file mode 100644
index 2d76205..0000000
--- a/src/c/encoding/binary-xml-publisher-public-key-digest.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_BINARYXMLPUBLISHERPUBLICKEYDIGEST_H
-#define NDN_BINARYXMLPUBLISHERPUBLICKEYDIGEST_H
-
-#include "../errors.h"
-#include "../publisher-public-key-digest.h"
-#include "binary-xml-encoder.h"
-#include "binary-xml-decoder.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * Encode the ndn_PublisherPublicKeyDigest struct using Binary XML.  If publisherPublicKeyDigest->publisherPublicKeyDigest or
- * publisherPublicKeyDigestLength is 0, then do nothing. 
- * @param publisherPublicKeyDigest pointer to the ndn_PublisherPublicKeyDigest struct
- * @param encoder pointer to the ndn_BinaryXmlEncoder struct
- * @return 0 for success, else an error code
- */
-ndn_Error ndn_encodeBinaryXmlPublisherPublicKeyDigest
-  (struct ndn_PublisherPublicKeyDigest *publisherPublicKeyDigest, struct ndn_BinaryXmlEncoder *encoder);
-
-/**
- * Expect the next element to be a Binary XML PublisherPublicKeyDigest and decode into the ndn_PublisherPublicKeyDigest struct.
- * @param publisherPublicKeyDigest pointer to the ndn_PublisherPublicKeyDigest struct
- * @param decoder pointer to the ndn_BinaryXmlDecoder struct
- * @return 0 for success, else an error code, including if the next element is not PublisherPublicKeyDigest.
- */
-ndn_Error ndn_decodeBinaryXmlPublisherPublicKeyDigest
-  (struct ndn_PublisherPublicKeyDigest *publisherPublicKeyDigest, struct ndn_BinaryXmlDecoder *decoder);
-
-/**
- * Peek the next element and if it is a Binary XML PublisherPublicKeyDigest and decode into the ndn_PublisherPublicKeyDigest struct.
- * Otherwise, set the ndn_PublisherPublicKeyDigest struct to none.
- * @param publisherPublicKeyDigest pointer to the ndn_PublisherPublicKeyDigest struct
- * @param decoder pointer to the ndn_BinaryXmlDecoder struct
- * @return 0 for success, else an error code, including if the next element is not PublisherPublicKeyDigest.
- */
-ndn_Error ndn_decodeOptionalBinaryXmlPublisherPublicKeyDigest
-  (struct ndn_PublisherPublicKeyDigest *publisherPublicKeyDigest, struct ndn_BinaryXmlDecoder *decoder);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/src/c/encoding/binary-xml-structure-decoder.c b/src/c/encoding/binary-xml-structure-decoder.c
deleted file mode 100644
index a8e2f09..0000000
--- a/src/c/encoding/binary-xml-structure-decoder.c
+++ /dev/null
@@ -1,150 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#include "../util/ndn_memory.h"
-#include "binary-xml.h"
-#include "binary-xml-decoder.h"
-#include "binary-xml-structure-decoder.h"
-
-void ndn_BinaryXmlStructureDecoder_initialize(struct ndn_BinaryXmlStructureDecoder *self) 
-{
-  self->gotElementEnd = 0;
-  self->offset = 0;
-  self->level = 0;
-  self->state = ndn_BinaryXmlStructureDecoder_READ_HEADER_OR_CLOSE;
-  self->headerLength = 0;
-  self->useHeaderBuffer = 0;
-  self->nBytesToRead = 0;
-}
-
-/**
- * Set the state to READ_HEADER_OR_CLOSE and set up to start reading the header.
- */
-static inline void startHeader(struct ndn_BinaryXmlStructureDecoder *self)
-{
-  self->headerLength = 0;
-  self->useHeaderBuffer = 0;
-  self->state = ndn_BinaryXmlStructureDecoder_READ_HEADER_OR_CLOSE;    
-}
-
-ndn_Error ndn_BinaryXmlStructureDecoder_findElementEnd
-  (struct ndn_BinaryXmlStructureDecoder *self, uint8_t *input, size_t inputLength) 
-{
-  if (self->gotElementEnd)
-    // Someone is calling when we already got the end.
-    return NDN_ERROR_success;
-  
-  struct ndn_BinaryXmlDecoder decoder;
-  ndn_BinaryXmlDecoder_initialize(&decoder, input, inputLength);
-  
-  while (1) {
-    if (self->offset >= inputLength)
-      // All the cases assume we have some input. Return and wait for more.
-      return NDN_ERROR_success;
-    
-    if (self->state == ndn_BinaryXmlStructureDecoder_READ_HEADER_OR_CLOSE) {
-      // First check for CLOSE.
-      if (self->headerLength == 0 && input[self->offset] == ndn_BinaryXml_CLOSE) {
-        ++self->offset;
-        // Close the level.
-        --self->level;
-        if (self->level == 0) {
-          // Finished.
-          self->gotElementEnd = 1;
-          return NDN_ERROR_success;
-        }
-        if (self->level < 0)
-          return NDN_ERROR_findElementEnd_unexpected_close_tag;
-          
-        // Get ready for the next header.
-        startHeader(self);
-        continue;
-      }
-        
-      size_t startingHeaderLength = self->headerLength;
-      while (1) {
-        if (self->offset >= inputLength) {
-          // We can't get all of the header bytes from this input. Save in headerBuffer.
-          if (self->headerLength > sizeof(self->headerBuffer))
-            return NDN_ERROR_cannot_store_more_header_bytes_than_the_size_of_headerBuffer;
-          self->useHeaderBuffer = 1;
-          size_t nNewBytes = self->headerLength - startingHeaderLength;
-          ndn_memcpy(self->headerBuffer + startingHeaderLength, input + (self->offset - nNewBytes), nNewBytes);
-            
-          return NDN_ERROR_success;
-        }
-        unsigned int headerByte = (unsigned int)input[self->offset++];
-        ++self->headerLength;
-        if (headerByte & ndn_BinaryXml_TT_FINAL)
-          // Break and read the header.
-          break;
-      }
-        
-      unsigned int type;
-      unsigned int value;
-      if (self->useHeaderBuffer) {
-        // Copy the remaining bytes into headerBuffer.
-        if (self->headerLength > sizeof(self->headerBuffer))
-          return NDN_ERROR_cannot_store_more_header_bytes_than_the_size_of_headerBuffer;
-        size_t nNewBytes = self->headerLength - startingHeaderLength;
-        ndn_memcpy(self->headerBuffer + startingHeaderLength, input + (self->offset - nNewBytes), nNewBytes);
-
-        // Use a local decoder just for the headerBuffer.
-        struct ndn_BinaryXmlDecoder bufferDecoder;
-        ndn_BinaryXmlDecoder_initialize(&bufferDecoder, self->headerBuffer, sizeof(self->headerBuffer));
-        if (ndn_BinaryXmlDecoder_decodeTypeAndValue(&bufferDecoder, &type, &value))
-          return NDN_ERROR_findElementEnd_cannot_read_header_type_and_value;
-      }
-      else {
-        // We didn't have to use the headerBuffer.
-        ndn_BinaryXmlDecoder_seek(&decoder, self->offset - self->headerLength);
-        if (ndn_BinaryXmlDecoder_decodeTypeAndValue(&decoder, &type, &value))
-          return NDN_ERROR_findElementEnd_cannot_read_header_type_and_value;
-      }
-        
-      // Set the next state based on the type.
-      if (type == ndn_BinaryXml_DATTR)
-        // We already consumed the item. READ_HEADER_OR_CLOSE again.
-        // Binary XML has rules about what must follow an attribute, but we are just scanning.
-        startHeader(self);
-      else if (type == ndn_BinaryXml_DTAG || type == ndn_BinaryXml_EXT) {
-        // Start a new level and READ_HEADER_OR_CLOSE again.
-        ++self->level;
-        startHeader(self);
-      }
-      else if (type == ndn_BinaryXml_TAG || type == ndn_BinaryXml_ATTR) {
-        if (type == ndn_BinaryXml_TAG)
-          // Start a new level and read the tag.
-          ++self->level;
-        // Minimum tag or attribute length is 1.
-        self->nBytesToRead = value + 1;
-        self->state = ndn_BinaryXmlStructureDecoder_READ_BYTES;
-        // Binary XML has rules about what must follow an attribute, but we are just scanning.
-      }
-      else if (type == ndn_BinaryXml_BLOB || type == ndn_BinaryXml_UDATA) {
-        self->nBytesToRead = value;
-        self->state = ndn_BinaryXmlStructureDecoder_READ_BYTES;
-      }
-      else
-        return NDN_ERROR_findElementEnd_unrecognized_header_type;
-    }  
-    else if (self->state == ndn_BinaryXmlStructureDecoder_READ_BYTES) {
-      size_t nRemainingBytes = inputLength - self->offset;
-      if (nRemainingBytes < self->nBytesToRead) {
-        // Need more.
-        self->offset += nRemainingBytes;
-        self->nBytesToRead -= nRemainingBytes;
-        return NDN_ERROR_success;
-      }
-      // Got the bytes. Read a new header or close.
-      self->offset += self->nBytesToRead;
-      startHeader(self);
-    }
-    else
-      // We don't expect this to happen.
-      return NDN_ERROR_findElementEnd_unrecognized_state;
-  }
-}
diff --git a/src/c/encoding/binary-xml-structure-decoder.h b/src/c/encoding/binary-xml-structure-decoder.h
deleted file mode 100644
index da5ad08..0000000
--- a/src/c/encoding/binary-xml-structure-decoder.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_BINARYXMLSTRUCTUREDECODER_H
-#define NDN_BINARYXMLSTRUCTUREDECODER_H
-
-#include <ndn-cpp-dev/c/common.h>
-#include "../errors.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct ndn_BinaryXmlStructureDecoder {
-  int gotElementEnd; /**< boolean */
-  size_t offset;
-  int level;
-  int state;
-  size_t headerLength;
-  int useHeaderBuffer; /**< boolean */
-  // 10 bytes is enough to hold an encoded header with a type and a 64 bit value.
-  uint8_t headerBuffer[10];
-  int nBytesToRead;
-};
-
-enum {
-  ndn_BinaryXmlStructureDecoder_READ_HEADER_OR_CLOSE,
-  ndn_BinaryXmlStructureDecoder_READ_BYTES
-};
-
-void ndn_BinaryXmlStructureDecoder_initialize(struct ndn_BinaryXmlStructureDecoder *self);
-        
-/**
- * Continue scanning input starting from self->offset to find the element end.  On return, you must check
- *   self->gotElementEnd: If the end of the element which started at offset 0 is found, 
- *   then self->gotElementEnd is 1 and self->offset is the length of the element.  Otherwise, self-forElementEnd is 0 
- *   which means you should read more into input and call again.
- * @param self pointer to the ndn_BinaryXmlStructureDecoder struct
- * @param input the input buffer. You have to pass in input each time because the buffer could be reallocated.
- * @param inputLength the number of bytes in input.
- * @return 0 for success, else an error code
- */
-ndn_Error ndn_BinaryXmlStructureDecoder_findElementEnd
-  (struct ndn_BinaryXmlStructureDecoder *self, uint8_t *input, size_t inputLength);
-
-/**
- * Set the offset into the input, used for the next read.
- * @param self pointer to the ndn_BinaryXmlStructureDecoder struct
- * @param offset the new offset
- */
-static inline void ndn_BinaryXmlStructureDecoder_seek(struct ndn_BinaryXmlStructureDecoder *self, size_t offset) 
-{
-  self->offset = offset;
-}
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/src/c/encoding/binary-xml.h b/src/c/encoding/binary-xml.h
deleted file mode 100644
index dc6958b..0000000
--- a/src/c/encoding/binary-xml.h
+++ /dev/null
@@ -1,145 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_BINARYXML_H
-#define NDN_BINARYXML_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-enum {
-  ndn_BinaryXml_EXT = 0x00,   
-  ndn_BinaryXml_TAG = 0x01, 
-  ndn_BinaryXml_DTAG = 0x02, 
-  ndn_BinaryXml_ATTR = 0x03, 
-  ndn_BinaryXml_DATTR = 0x04, 
-  ndn_BinaryXml_BLOB = 0x05, 
-  ndn_BinaryXml_UDATA = 0x06, 
-  ndn_BinaryXml_CLOSE = 0x0,
-
-  ndn_BinaryXml_TT_BITS = 3,
-  ndn_BinaryXml_TT_MASK = ((1 << ndn_BinaryXml_TT_BITS) - 1),
-  ndn_BinaryXml_TT_VALUE_BITS = 4,
-  ndn_BinaryXml_TT_VALUE_MASK = ((1 << (ndn_BinaryXml_TT_VALUE_BITS)) - 1),
-  ndn_BinaryXml_REGULAR_VALUE_BITS = 7,
-  ndn_BinaryXml_REGULAR_VALUE_MASK = ((1 << ndn_BinaryXml_REGULAR_VALUE_BITS) - 1),
-  ndn_BinaryXml_TT_FINAL = 0x80,
-
-  ndn_BinaryXml_DTag_Any = 13,
-  ndn_BinaryXml_DTag_Name = 14,
-  ndn_BinaryXml_DTag_Component = 15,
-  ndn_BinaryXml_DTag_Certificate = 16,
-  ndn_BinaryXml_DTag_Collection = 17,
-  ndn_BinaryXml_DTag_CompleteName = 18,
-  ndn_BinaryXml_DTag_Content = 19,
-  ndn_BinaryXml_DTag_SignedInfo = 20,
-  ndn_BinaryXml_DTag_ContentDigest = 21,
-  ndn_BinaryXml_DTag_ContentHash = 22,
-  ndn_BinaryXml_DTag_Count = 24,
-  ndn_BinaryXml_DTag_Header = 25,
-  ndn_BinaryXml_DTag_Interest = 26,  /* 20090915 */
-  ndn_BinaryXml_DTag_Key = 27,
-  ndn_BinaryXml_DTag_KeyLocator = 28,
-  ndn_BinaryXml_DTag_KeyName = 29,
-  ndn_BinaryXml_DTag_Length = 30,
-  ndn_BinaryXml_DTag_Link = 31,
-  ndn_BinaryXml_DTag_LinkAuthenticator = 32,
-  ndn_BinaryXml_DTag_NameComponentCount = 33,  /* DeprecatedInInterest */
-  ndn_BinaryXml_DTag_RootDigest = 36,
-  ndn_BinaryXml_DTag_Signature = 37,
-  ndn_BinaryXml_DTag_Start = 38,
-  ndn_BinaryXml_DTag_Timestamp = 39,
-  ndn_BinaryXml_DTag_Type = 40,
-  ndn_BinaryXml_DTag_Nonce = 41,
-  ndn_BinaryXml_DTag_Scope = 42,
-  ndn_BinaryXml_DTag_Exclude = 43,
-  ndn_BinaryXml_DTag_Bloom = 44,
-  ndn_BinaryXml_DTag_BloomSeed = 45,
-  ndn_BinaryXml_DTag_AnswerOriginKind = 47,
-  ndn_BinaryXml_DTag_InterestLifetime = 48,
-  ndn_BinaryXml_DTag_Witness = 53,
-  ndn_BinaryXml_DTag_SignatureBits = 54,
-  ndn_BinaryXml_DTag_DigestAlgorithm = 55,
-  ndn_BinaryXml_DTag_BlockSize = 56,
-  ndn_BinaryXml_DTag_FreshnessSeconds = 58,
-  ndn_BinaryXml_DTag_FinalBlockID = 59,
-  ndn_BinaryXml_DTag_PublisherPublicKeyDigest = 60,
-  ndn_BinaryXml_DTag_PublisherCertificateDigest = 61,
-  ndn_BinaryXml_DTag_PublisherIssuerKeyDigest = 62,
-  ndn_BinaryXml_DTag_PublisherIssuerCertificateDigest = 63,
-  ndn_BinaryXml_DTag_ContentObject = 64,  /* 20090915 */
-  ndn_BinaryXml_DTag_WrappedKey = 65,
-  ndn_BinaryXml_DTag_WrappingKeyIdentifier = 66,
-  ndn_BinaryXml_DTag_WrapAlgorithm = 67,
-  ndn_BinaryXml_DTag_KeyAlgorithm = 68,
-  ndn_BinaryXml_DTag_Label = 69,
-  ndn_BinaryXml_DTag_EncryptedKey = 70,
-  ndn_BinaryXml_DTag_EncryptedNonceKey = 71,
-  ndn_BinaryXml_DTag_WrappingKeyName = 72,
-  ndn_BinaryXml_DTag_Action = 73,
-  ndn_BinaryXml_DTag_FaceID = 74,
-  ndn_BinaryXml_DTag_IPProto = 75,
-  ndn_BinaryXml_DTag_Host = 76,
-  ndn_BinaryXml_DTag_Port = 77,
-  ndn_BinaryXml_DTag_MulticastInterface = 78,
-  ndn_BinaryXml_DTag_ForwardingFlags = 79,
-  ndn_BinaryXml_DTag_FaceInstance = 80,
-  ndn_BinaryXml_DTag_ForwardingEntry = 81,
-  ndn_BinaryXml_DTag_MulticastTTL = 82,
-  ndn_BinaryXml_DTag_MinSuffixComponents = 83,
-  ndn_BinaryXml_DTag_MaxSuffixComponents = 84,
-  ndn_BinaryXml_DTag_ChildSelector = 85,
-  ndn_BinaryXml_DTag_RepositoryInfo = 86,
-  ndn_BinaryXml_DTag_Version = 87,
-  ndn_BinaryXml_DTag_RepositoryVersion = 88,
-  ndn_BinaryXml_DTag_GlobalPrefix = 89,
-  ndn_BinaryXml_DTag_LocalName = 90,
-  ndn_BinaryXml_DTag_Policy = 91,
-  ndn_BinaryXml_DTag_Namespace = 92,
-  ndn_BinaryXml_DTag_GlobalPrefixName = 93,
-  ndn_BinaryXml_DTag_PolicyVersion = 94,
-  ndn_BinaryXml_DTag_KeyValueSet = 95,
-  ndn_BinaryXml_DTag_KeyValuePair = 96,
-  ndn_BinaryXml_DTag_IntegerValue = 97,
-  ndn_BinaryXml_DTag_DecimalValue = 98,
-  ndn_BinaryXml_DTag_StringValue = 99,
-  ndn_BinaryXml_DTag_BinaryValue = 100,
-  ndn_BinaryXml_DTag_NameValue = 101,
-  ndn_BinaryXml_DTag_Entry = 102,
-  ndn_BinaryXml_DTag_ACL = 103,
-  ndn_BinaryXml_DTag_ParameterizedName = 104,
-  ndn_BinaryXml_DTag_Prefix = 105,
-  ndn_BinaryXml_DTag_Suffix = 106,
-  ndn_BinaryXml_DTag_Root = 107,
-  ndn_BinaryXml_DTag_ProfileName = 108,
-  ndn_BinaryXml_DTag_Parameters = 109,
-  ndn_BinaryXml_DTag_InfoString = 110,
-  ndn_BinaryXml_DTag_StatusResponse = 112,
-  ndn_BinaryXml_DTag_StatusCode = 113,
-  ndn_BinaryXml_DTag_StatusText = 114,
-  ndn_BinaryXml_DTag_SyncNode = 115,
-  ndn_BinaryXml_DTag_SyncNodeKind = 116,
-  ndn_BinaryXml_DTag_SyncNodeElement = 117,
-  ndn_BinaryXml_DTag_SyncVersion = 118,
-  ndn_BinaryXml_DTag_SyncNodeElements = 119,
-  ndn_BinaryXml_DTag_SyncContentHash = 120,
-  ndn_BinaryXml_DTag_SyncLeafCount = 121,
-  ndn_BinaryXml_DTag_SyncTreeDepth = 122,
-  ndn_BinaryXml_DTag_SyncByteCount = 123,
-  ndn_BinaryXml_DTag_SyncConfigSlice = 124,
-  ndn_BinaryXml_DTag_SyncConfigSliceList = 125,
-  ndn_BinaryXml_DTag_SyncConfigSliceOp = 126,
-  ndn_BinaryXml_DTag_SyncNodeDeltas = 127,
-  ndn_BinaryXml_DTag_SequenceNumber = 256,
-  ndn_BinaryXml_DTag_NDNProtocolDataUnit = 20587744 // the encoded empty element, viewed as a string is "NDN\202\000"
-};
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/src/c/errors.c b/src/c/errors.c
deleted file mode 100644
index 3b6b8bb..0000000
--- a/src/c/errors.c
+++ /dev/null
@@ -1,85 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#include "errors.h"
-
-char *ndn_getErrorString(int error)
-{
-  switch (error) {
-  case NDN_ERROR_success:
-    return      "Success"; 
-  case NDN_ERROR_element_of_value_is_not_a_decimal_digit:
-    return      "Element of value is not a decimal digit";
-  case NDN_ERROR_read_past_the_end_of_the_input:
-    return      "Read past the end of the input";
-  case NDN_ERROR_the_first_header_octet_may_not_be_zero:
-    return      "The first header octet may not be zero";
-  case NDN_ERROR_header_type_is_not_a_DTAG:
-    return      "Header type is not a DTAG";
-  case NDN_ERROR_did_not_get_the_expected_DTAG:
-    return      "Did not get the expected DTAG";
-  case NDN_ERROR_did_not_get_the_expected_element_close:
-    return      "Did not get the expected element close";
-  case NDN_ERROR_item_is_not_UDATA:
-    return      "Item is not UDATA";
-  case NDN_ERROR_header_type_is_out_of_range:
-    return      "Header type is out of range";
-  case NDN_ERROR_encodeTypeAndValue_miscalculated_N_encoding_bytes:
-    return      "EncodeTypeAndValue miscalculated N encoding bytes";
-  case NDN_ERROR_attempt_to_add_a_component_past_the_maximum_number_of_components_allowed_in_the_name:
-    return      "Attempt to add a component past the maximum number of components allowed in the name";
-  case NDN_ERROR_read_an_entry_past_the_maximum_number_of_entries_allowed_in_the_exclude:
-    return      "Read an entry past the maximum number of entries allowed in the exclude";
-  case NDN_ERROR_findElementEnd_unexpected_close_tag:
-    return      "FindElementEnd unexpected close tag";
-  case NDN_ERROR_cannot_store_more_header_bytes_than_the_size_of_headerBuffer:
-    return      "Cannot store more header bytes than the size of headerBuffer";
-  case NDN_ERROR_findElementEnd_cannot_read_header_type_and_value:
-    return      "FindElementEnd cannot read header type and value";
-  case NDN_ERROR_findElementEnd_unrecognized_header_type:
-    return      "FindElementEnd unrecognized header type";
-  case NDN_ERROR_findElementEnd_unrecognized_state:
-    return      "FindElementEnd unrecognized state";
-  case NDN_ERROR_DynamicUInt8Array_realloc_function_pointer_not_supplied:
-    return      "DynamicUInt8Array realloc function pointer not supplied";
-  case NDN_ERROR_DynamicUInt8Array_realloc_failed:
-    return      "DynamicUInt8Array realloc failed";
-  case NDN_ERROR_unrecognized_ndn_ExcludeType:
-    return      "Unrecognized ndn_ExcludeType";
-  case NDN_ERROR_unrecognized_ndn_ContentType:
-    return      "Unrecognized ndn_ContentType";
-  case NDN_ERROR_unrecognized_ndn_KeyLocatorType:
-    return      "Unrecognized ndn_KeyLocatorType";
-  case NDN_ERROR_unrecognized_ndn_KeyNameType:
-    return      "Unrecognized ndn_KeyNameType";
-  case NDN_ERROR_decodeBinaryXmlKeyLocator_unrecognized_key_locator_type:
-    return      "decodeBinaryXmlKeyLocator unrecognized key locator type";
-  case NDN_ERROR_unrecognized_ndn_SocketTransport:
-    return      "Unrecognized ndn_SocketTransport";
-  case NDN_ERROR_SocketTransport_error_in_getaddrinfo:
-    return      "SocketTransport error in getaddrinfo";
-  case NDN_ERROR_SocketTransport_cannot_connect_to_socket:
-    return      "SocketTransport cannot connect to socket";
-  case NDN_ERROR_SocketTransport_socket_is_not_open:
-    return      "SocketTransport socket is not open";
-  case NDN_ERROR_SocketTransport_error_in_send:
-    return      "SocketTransport error in send";
-  case NDN_ERROR_SocketTransport_error_in_poll:
-    return      "SocketTransport error in poll";
-  case NDN_ERROR_SocketTransport_error_in_recv:
-    return      "SocketTransport error in recv";
-  case NDN_ERROR_SocketTransport_error_in_close:
-    return      "SocketTransport error in close";
-  case NDN_ERROR_Name_component_does_not_begin_with_the_expected_marker:
-    return      "Name component does not begin with the expected marker";
-  case NDN_ERROR_Time_functions_are_not_supported_by_the_standard_library:
-    return      "Time functions are not supported by the standard library";
-  case NDN_ERROR_Calendar_time_value_out_of_range:
-    return      "Calendar time value out of range";
-  default:
-    return "unrecognized ndn_Error code";  
-  }
-}
diff --git a/src/c/errors.h b/src/c/errors.h
deleted file mode 100644
index 5906aa3..0000000
--- a/src/c/errors.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/**
- * Define error codes and ndn_getErrorString to convert to a string.
- * Copyright (C) 2013 Regents of the University of California.
- * @author, Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_ERRORS_H
-#define NDN_ERRORS_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef enum {
-  NDN_ERROR_success = 0,
-  NDN_ERROR_element_of_value_is_not_a_decimal_digit,
-  NDN_ERROR_read_past_the_end_of_the_input,
-  NDN_ERROR_the_first_header_octet_may_not_be_zero,
-  NDN_ERROR_header_type_is_not_a_DTAG,
-  NDN_ERROR_did_not_get_the_expected_DTAG,
-  NDN_ERROR_did_not_get_the_expected_element_close,
-  NDN_ERROR_item_is_not_UDATA,
-  NDN_ERROR_header_type_is_out_of_range,
-  NDN_ERROR_encodeTypeAndValue_miscalculated_N_encoding_bytes,
-  NDN_ERROR_attempt_to_add_a_component_past_the_maximum_number_of_components_allowed_in_the_name,
-  NDN_ERROR_read_an_entry_past_the_maximum_number_of_entries_allowed_in_the_exclude,
-  NDN_ERROR_findElementEnd_unexpected_close_tag,
-  NDN_ERROR_cannot_store_more_header_bytes_than_the_size_of_headerBuffer,
-  NDN_ERROR_findElementEnd_cannot_read_header_type_and_value,
-  NDN_ERROR_findElementEnd_unrecognized_header_type,
-  NDN_ERROR_findElementEnd_unrecognized_state,
-  NDN_ERROR_DynamicUInt8Array_realloc_function_pointer_not_supplied,
-  NDN_ERROR_DynamicUInt8Array_realloc_failed,
-  NDN_ERROR_unrecognized_ndn_ExcludeType,
-  NDN_ERROR_unrecognized_ndn_ContentType,
-  NDN_ERROR_unrecognized_ndn_KeyLocatorType,
-  NDN_ERROR_unrecognized_ndn_KeyNameType,
-  NDN_ERROR_decodeBinaryXmlKeyLocator_unrecognized_key_locator_type,
-  NDN_ERROR_unrecognized_ndn_SocketTransport,
-  NDN_ERROR_SocketTransport_error_in_getaddrinfo,
-  NDN_ERROR_SocketTransport_cannot_connect_to_socket,
-  NDN_ERROR_SocketTransport_socket_is_not_open,
-  NDN_ERROR_SocketTransport_error_in_send,
-  NDN_ERROR_SocketTransport_error_in_poll,
-  NDN_ERROR_SocketTransport_error_in_recv,
-  NDN_ERROR_SocketTransport_error_in_close,
-  NDN_ERROR_Name_component_does_not_begin_with_the_expected_marker,
-  NDN_ERROR_Time_functions_are_not_supported_by_the_standard_library,
-  NDN_ERROR_Calendar_time_value_out_of_range
-} ndn_Error;
-  
-/**
- * Convert the error code to its string.
- * @param error the error code
- * @return the error string or "unrecognized ndn_Error code"
- */
-char *ndn_getErrorString(int error);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/src/c/forwarding-entry.h b/src/c/forwarding-entry.h
deleted file mode 100644
index 38ead4c..0000000
--- a/src/c/forwarding-entry.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_FORWARDING_ENTRY_H
-#define NDN_FORWARDING_ENTRY_H
-
-#include <ndn-cpp-dev/c/common.h>
-#include <ndn-cpp-dev/c/forwarding-flags.h>
-#include "name.h"
-#include "publisher-public-key-digest.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef enum {
-  ndn_ForwardingEntryFlags_ACTIVE         = 1,
-  ndn_ForwardingEntryFlags_CHILD_INHERIT  = 2,
-  ndn_ForwardingEntryFlags_ADVERTISE      = 4,
-  ndn_ForwardingEntryFlags_LAST           = 8,
-  ndn_ForwardingEntryFlags_CAPTURE       = 16,
-  ndn_ForwardingEntryFlags_LOCAL         = 32,
-  ndn_ForwardingEntryFlags_TAP           = 64,
-  ndn_ForwardingEntryFlags_CAPTURE_OK   = 128
-} ndn_ForwardingEntryFlags;
-
-/**
- * An ndn_ForwardingEntry holds fields for a ForwardingEntry which is used to register a prefix with a hub.
- */
-struct ndn_ForwardingEntry {
-  struct ndn_Blob action;   /**< A Blob whose value is a pointer to a pre-allocated buffer.  0 for none. */
-  struct ndn_Name prefix;
-  struct ndn_PublisherPublicKeyDigest publisherPublicKeyDigest;
-  int faceId;               /**< -1 for none. */
-  struct ndn_ForwardingFlags forwardingFlags;
-  int freshnessSeconds;     /**< -1 for none. */
-};
-
-/**
- * Initialize an ndn_ForwardingEntry struct with the pre-allocated prefixNameComponents,
- * and defaults for all the values.
- * @param self pointer to the ndn_Interest struct
- * @param prefixNameComponents the pre-allocated array of ndn_NameComponent
- * @param maxPrefixNameComponents the number of elements in the allocated prefixNameComponents array
- */
-static inline void ndn_ForwardingEntry_initialize
-  (struct ndn_ForwardingEntry *self, struct ndn_NameComponent *prefixNameComponents, size_t maxPrefixNameComponents) 
-{
-  ndn_Blob_initialize(&self->action, 0, 0);
-  ndn_Name_initialize(&self->prefix, prefixNameComponents, maxPrefixNameComponents);
-  ndn_PublisherPublicKeyDigest_initialize(&self->publisherPublicKeyDigest);
-  self->faceId = -1;
-  ndn_ForwardingFlags_initialize(&self->forwardingFlags);
-  self->freshnessSeconds = -1;
-}
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/src/c/forwarding-flags.c b/src/c/forwarding-flags.c
deleted file mode 100644
index be52a8b..0000000
--- a/src/c/forwarding-flags.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#include "forwarding-entry.h"
-
-void ndn_ForwardingFlags_initialize(struct ndn_ForwardingFlags *self)
-{
-  self->active = 1;
-  self->childInherit = 1;
-  self->advertise = 0;
-  self->last = 0;
-  self->capture = 0;
-  self->local = 0;
-  self->tap = 0;
-  self->captureOk = 0;
-}
-
-int ndn_ForwardingFlags_getForwardingEntryFlags(struct ndn_ForwardingFlags *self)
-{
-  int result = 0;
-  
-  if (self->active)
-    result |= ndn_ForwardingEntryFlags_ACTIVE;
-  if (self->childInherit)
-    result |= ndn_ForwardingEntryFlags_CHILD_INHERIT;
-  if (self->advertise)
-    result |= ndn_ForwardingEntryFlags_ADVERTISE;
-  if (self->last)
-    result |= ndn_ForwardingEntryFlags_LAST;
-  if (self->capture)
-    result |= ndn_ForwardingEntryFlags_CAPTURE;
-  if (self->local)
-    result |= ndn_ForwardingEntryFlags_LOCAL;
-  if (self->tap)
-    result |= ndn_ForwardingEntryFlags_TAP;
-  if (self->captureOk)
-    result |= ndn_ForwardingEntryFlags_CAPTURE_OK;
-  
-  return result;
-}
-
-void ndn_ForwardingFlags_setForwardingEntryFlags(struct ndn_ForwardingFlags *self, int forwardingEntryFlags)
-{
-  self->active = (forwardingEntryFlags & ndn_ForwardingEntryFlags_ACTIVE) ? 1 : 0;
-  self->childInherit = (forwardingEntryFlags & ndn_ForwardingEntryFlags_CHILD_INHERIT) ? 1 : 0;
-  self->advertise = (forwardingEntryFlags & ndn_ForwardingEntryFlags_ADVERTISE) ? 1 : 0;
-  self->last = (forwardingEntryFlags & ndn_ForwardingEntryFlags_LAST) ? 1 : 0;
-  self->capture = (forwardingEntryFlags & ndn_ForwardingEntryFlags_CAPTURE) ? 1 : 0;
-  self->local = (forwardingEntryFlags & ndn_ForwardingEntryFlags_LOCAL) ? 1 : 0;
-  self->tap = (forwardingEntryFlags & ndn_ForwardingEntryFlags_TAP) ? 1 : 0;
-  self->captureOk = (forwardingEntryFlags & ndn_ForwardingEntryFlags_CAPTURE_OK) ? 1 : 0;
-}
diff --git a/src/c/interest.c b/src/c/interest.c
deleted file mode 100644
index 44c3ff6..0000000
--- a/src/c/interest.c
+++ /dev/null
@@ -1,93 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#include "util/ndn_memory.h"
-#include "interest.h"
-
-int ndn_Exclude_compareComponents(struct ndn_NameComponent *component1, struct ndn_NameComponent *component2)
-{
-  if (component1->value.length < component2->value.length)
-    return -1;
-  if (component1->value.length > component2->value.length)
-    return 1;
-
-  // The components are equal length.  Just do a byte compare.  
-  return ndn_memcmp(component1->value.value, component2->value.value, component1->value.length);
-}
-
-int ndn_Exclude_matches(struct ndn_Exclude *self, struct ndn_NameComponent *component)
-{
-  size_t i;
-  for (i = 0; i < self->nEntries; ++i) {
-    if (self->entries[i].type == ndn_Exclude_ANY) {
-      struct ndn_ExcludeEntry *lowerBound = 0;
-      if (i > 0)
-        lowerBound = self->entries + (i - 1);
-      
-      // Find the upper bound, possibly skipping over multiple ANY in a row.
-      size_t iUpperBound;
-      struct ndn_ExcludeEntry *upperBound = 0;
-      for (iUpperBound = i + 1; iUpperBound < self->nEntries; ++iUpperBound) {
-        if (self->entries[iUpperBound].type == ndn_Exclude_COMPONENT) {
-          upperBound = self->entries + iUpperBound;
-          break;
-        }
-      }
-      
-      // If lowerBound != 0, we already checked component equals lowerBound on the last pass.
-      // If upperBound != 0, we will check component equals upperBound on the next pass.
-      if (upperBound != 0) {
-        if (lowerBound != 0) {
-          if (ndn_Exclude_compareComponents(component, &lowerBound->component) > 0 &&
-              ndn_Exclude_compareComponents(component, &upperBound->component) < 0)
-            return 1;
-        }
-        else {
-          if (ndn_Exclude_compareComponents(component, &upperBound->component) < 0)
-            return 1;
-        }
-        
-        // Make i equal iUpperBound on the next pass.
-        i = iUpperBound - 1;
-      }
-      else {
-        if (lowerBound != 0) {
-          if (ndn_Exclude_compareComponents(component, &lowerBound->component) > 0)
-            return 1;
-        }
-        else
-          // this.values has only ANY.
-          return 1;
-      }
-    }
-    else {
-      if (ndn_Exclude_compareComponents(component, &self->entries[i].component) == 0)
-        return 1;
-    }
-  }
-  
-  return 0;  
-}
-
-int ndn_Interest_matchesName(struct ndn_Interest *self, struct ndn_Name *name)
-{
-  if (!ndn_Name_match(&self->name, name))
-    return 0;
-  
-  if (self->minSuffixComponents >= 0 &&
-    // Add 1 for the implicit digest.
-    !(name->nComponents + 1 - self->name.nComponents >= self->minSuffixComponents))
-    return 0;
-  if (self->maxSuffixComponents >= 0 &&
-    // Add 1 for the implicit digest.
-    !(name->nComponents + 1 - self->name.nComponents <= self->maxSuffixComponents))
-    return 0;
-  if (self->exclude.nEntries > 0 && name->nComponents > self->name.nComponents &&
-      ndn_Exclude_matches(&self->exclude, name->components + self->name.nComponents))
-    return 0;
-  
-  return 1; 
-}
diff --git a/src/c/interest.h b/src/c/interest.h
deleted file mode 100644
index 8f0a587..0000000
--- a/src/c/interest.h
+++ /dev/null
@@ -1,132 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_INTEREST_H
-#define NDN_INTEREST_H
-
-#include <ndn-cpp-dev/c/interest-types.h>
-#include "name.h"
-#include "publisher-public-key-digest.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * An ndn_ExcludeEntry holds an ndn_ExcludeType, and if it is a COMPONENT, it holds a pointer to the component value.
- */
-struct ndn_ExcludeEntry {
-  ndn_ExcludeType type;
-  struct ndn_NameComponent component;
-};
-
-/**
- * 
- * @param self pointer to the ndn_NameComponent struct
- * @param type one of the ndn_ExcludeType enum
- * @param component the pre-allocated buffer for the component value, only used if type is ndn_Exclude_COMPONENT
- * @param componentLength the number of bytes in value, only used if type is ndn_Exclude_COMPONENT
- */
-static inline void ndn_ExcludeEntry_initialize(struct ndn_ExcludeEntry *self, ndn_ExcludeType type, uint8_t *component, size_t componentLength) 
-{
-  self->type = type;
-  ndn_NameComponent_initialize(&self->component, component, componentLength);
-}
-
-/**
- * An ndn_Exclude holds an array of ndn_ExcludeEntry.
- */
-struct ndn_Exclude {
-  struct ndn_ExcludeEntry *entries;  /**< pointer to the array of entries. */
-  size_t maxEntries;                 /**< the number of elements in the allocated entries array */
-  size_t nEntries;                   /**< the number of entries in the exclude, 0 for no exclude */
-};
-/**
- * Initialize an ndn_Exclude struct with the entries array.
- * @param self A pointer to the ndn_Exclude struct.
- * @param entries the pre-allocated array of ndn_ExcludeEntry
- * @param maxEntries the number of elements in the allocated entries array
- */
-static inline void ndn_Exclude_initialize(struct ndn_Exclude *self, struct ndn_ExcludeEntry *entries, size_t maxEntries) 
-{
-  self->entries = entries;
-  self->maxEntries = maxEntries;
-  self->nEntries = 0;
-}
-
-/**
- * Compare the components using NDN component ordering.
- * A component is less if it is shorter, otherwise if equal length do a byte comparison.
- * @param component1 A pointer to the first name component.
- * @param component2 A pointer to the second name component.
- * @return -1 if component1 is less than component2, 1 if greater or 0 if equal.
- */
-int ndn_Exclude_compareComponents(struct ndn_NameComponent *component1, struct ndn_NameComponent *component2);
-
-/**
- * Check if the component matches any of the exclude criteria.
- * @param self A pointer to the ndn_Exclude struct.
- * @param component A pointer to the name component to check.
- * @return 1 if the component matches any of the exclude criteria, otherwise 0.
- */
-int ndn_Exclude_matches(struct ndn_Exclude *self, struct ndn_NameComponent *component);
-
-/**
- * An ndn_Interest holds an ndn_Name and other fields for an interest.
- */
-struct ndn_Interest {
-  struct ndn_Name name;
-  int minSuffixComponents;  /**< -1 for none */
-  int maxSuffixComponents;  /**< -1 for none */
-  struct ndn_PublisherPublicKeyDigest publisherPublicKeyDigest;
-  struct ndn_Exclude exclude;
-  int childSelector;        /**< -1 for none */
-  int answerOriginKind;     /**< -1 for none */
-  int scope;                /**< -1 for none */
-  ndn_Milliseconds interestLifetimeMilliseconds; /**< milliseconds. -1.0 for none */
-  struct ndn_Blob nonce;    /**< The blob whose value is a pointer to a pre-allocated buffer.  0 for none */
-};
-
-/**
- * Initialize an ndn_Interest struct with the pre-allocated nameComponents and excludeEntries,
- * and defaults for all the values.
- * @param self pointer to the ndn_Interest struct
- * @param nameComponents the pre-allocated array of ndn_NameComponent
- * @param maxNameComponents the number of elements in the allocated nameComponents array
- * @param excludeEntries the pre-allocated array of ndn_ExcludeEntry
- * @param maxExcludeEntries the number of elements in the allocated excludeEntries array
- */
-static inline void ndn_Interest_initialize
-  (struct ndn_Interest *self, struct ndn_NameComponent *nameComponents, size_t maxNameComponents,
-   struct ndn_ExcludeEntry *excludeEntries, size_t maxExcludeEntries) 
-{
-  ndn_Name_initialize(&self->name, nameComponents, maxNameComponents);
-  self->minSuffixComponents = -1;
-  self->maxSuffixComponents = -1;
-  ndn_PublisherPublicKeyDigest_initialize(&self->publisherPublicKeyDigest);
-  ndn_Exclude_initialize(&self->exclude, excludeEntries, maxExcludeEntries);
-  self->childSelector = -1;
-  self->answerOriginKind = -1;
-  self->scope = -1;
-  self->interestLifetimeMilliseconds = -1.0;
-  ndn_Blob_initialize(&self->nonce, 0, 0);
-}
-
-/**
- * Check if self's name matches the given name (using ndn_Name_match) and the given name also conforms to the 
- * interest selectors.
- * @param self A pointer to the ndn_Interest struct.
- * @param name A pointer to the name to check.
- * @return 1 if the name and interest selectors match, 0 otherwise.
- */
-int ndn_Interest_matchesName(struct ndn_Interest *self, struct ndn_Name *name);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
diff --git a/src/c/key-locator.h b/src/c/key-locator.h
deleted file mode 100644
index 1275ba9..0000000
--- a/src/c/key-locator.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_KEY_LOCATOR_H
-#define NDN_KEY_LOCATOR_H
-
-#include <ndn-cpp-dev/c/key-types.h>
-#include "name.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * An ndn_KeyLocator holds the type of key locator and related data.
- */
-struct ndn_KeyLocator {
-  ndn_KeyLocatorType type;     /**< -1 for none */
-  struct ndn_Blob keyData;            /**< A Blob whose value is a pointer to a pre-allocated buffer for the key data as follows:
-    *   If type is ndn_KeyLocatorType_KEY, the key data.
-    *   If type is ndn_KeyLocatorType_CERTIFICATE, the certificate data. 
-    *   If type is ndn_KeyLocatorType_KEYNAME and keyNameType is ndn_KeyNameType_PUBLISHER_PUBLIC_KEY_DIGEST, the publisher public key digest. 
-    *   If type is ndn_KeyLocatorType_KEYNAME and keyNameType is ndn_KeyNameType_PUBLISHER_CERTIFICATE_DIGEST, the publisher certificate digest. 
-    *   If type is ndn_KeyLocatorType_KEYNAME and keyNameType is ndn_KeyNameType_PUBLISHER_ISSUER_KEY_DIGEST, the publisher issuer key digest. 
-    *   If type is ndn_KeyLocatorType_KEYNAME and keyNameType is ndn_KeyNameType_PUBLISHER_ISSUER_CERTIFICATE_DIGEST, the publisher issuer certificate digest. 
-    */
-  struct ndn_Name keyName;     /**< The key name (only used if type is ndn_KeyLocatorType_KEYNAME.) */
-  ndn_KeyNameType keyNameType; /**< The type of data for keyName, -1 for none. (only used if type is ndn_KeyLocatorType_KEYNAME.) */
-};
-
-/**
- * Initialize an ndn_KeyLocator struct with the pre-allocated nameComponents, and defaults for all the values.
- * @param self A pointer to the ndn_KeyLocator struct.
- * @param keyNameComponents The pre-allocated array of ndn_NameComponent.
- * @param maxKeyNameComponents The number of elements in the allocated keyNameComponents array.
- */
-static inline void ndn_KeyLocator_initialize
-  (struct ndn_KeyLocator *self, struct ndn_NameComponent *keyNameComponents, size_t maxKeyNameComponents) {
-  self->type = (ndn_KeyLocatorType)-1;
-  ndn_Blob_initialize(&self->keyData, 0, 0);
-  ndn_Name_initialize(&self->keyName, keyNameComponents, maxKeyNameComponents);
-  self->keyNameType = (ndn_KeyNameType)-1;
-}
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/src/c/name.c b/src/c/name.c
deleted file mode 100644
index 147d583..0000000
--- a/src/c/name.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#include <string.h>
-#include "util/ndn_memory.h"
-#include "name.h"
-
-uint64_t ndn_NameComponent_toNumber(struct ndn_NameComponent *self)
-{
-  uint64_t result = 0;
-  size_t i;
-  for (i = 0; i < self->value.length; ++i) {
-    result *= 256;
-    result += (uint64_t)self->value.value[i];
-  }
-  
-  return result;
-}
-
-ndn_Error ndn_NameComponent_toNumberWithMarker(struct ndn_NameComponent *self, uint8_t marker, uint64_t *result)
-{
-  if (self->value.length == 0 || self->value.value[0] != marker)
-    return NDN_ERROR_Name_component_does_not_begin_with_the_expected_marker;
-  
-  uint64_t localResult = 0;
-  size_t i;
-  for (i = 1; i < self->value.length; ++i) {
-    localResult *= 256;
-    localResult += (uint64_t)self->value.value[i];
-  }
-  
-  *result = localResult;
-  return NDN_ERROR_success;
-}
-
-int ndn_Name_match(struct ndn_Name *self, struct ndn_Name *name)
-{
-  // This name is longer than the name we are checking it against.
-  if (self->nComponents > name->nComponents)
-    return 0;
-
-  // Check if at least one of given components doesn't match.
-  size_t i;
-  for (i = 0; i < self->nComponents; ++i) {
-    struct ndn_NameComponent *selfComponent = self->components + i;
-    struct ndn_NameComponent *nameComponent = name->components + i;
-
-    if (selfComponent->value.length != nameComponent->value.length ||
-        ndn_memcmp(selfComponent->value.value, nameComponent->value.value, selfComponent->value.length) != 0)
-      return 0;
-  }
-
-  return 1;
-}
-
-ndn_Error ndn_Name_appendComponent(struct ndn_Name *self, uint8_t* value, size_t valueLength)
-{
-  if (self->nComponents >= self->maxComponents)
-      return NDN_ERROR_attempt_to_add_a_component_past_the_maximum_number_of_components_allowed_in_the_name;
-  ndn_NameComponent_initialize(self->components + self->nComponents, value, valueLength);
-  ++self->nComponents;
-      
-  return NDN_ERROR_success;
-}
-
-ndn_Error ndn_Name_appendString(struct ndn_Name *self, char* value)
-{
-  return ndn_Name_appendComponent(self, (uint8_t*)value, strlen(value));
-}
diff --git a/src/c/name.h b/src/c/name.h
deleted file mode 100644
index c28f1b1..0000000
--- a/src/c/name.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_NAME_H
-#define NDN_NAME_H
-
-#include <ndn-cpp-dev/c/common.h>
-#include "errors.h"
-#include "util/blob.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-  
-/**
- * An ndn_NameComponent holds a pointer to the component value.
- */
-struct ndn_NameComponent {
-  struct ndn_Blob value;     /**< A Blob with a pointer to the pre-allocated buffer for the component value */
-};
-
-/**
- * 
- * @param self pointer to the ndn_NameComponent struct
- * @param value the pre-allocated buffer for the component value
- * @param valueLength the number of bytes in value
- */
-static inline void ndn_NameComponent_initialize(struct ndn_NameComponent *self, uint8_t *value, size_t valueLength) 
-{
-  ndn_Blob_initialize(&self->value, value, valueLength);
-}
-
-/**
- * Interpret the name component as a network-ordered number and return an integer.
- * @param self A pointer to the ndn_NameComponent struct.
- * @return The integer number.
- */
-uint64_t ndn_NameComponent_toNumber(struct ndn_NameComponent *self);
-
-/**
- * Interpret the name component as a network-ordered number with a marker and return an integer.
- * @param self A pointer to the ndn_NameComponent struct.
- * @param marker The required first byte of the component.
- * @param result Return the integer number.
- * @return 0 for success, or an error code if the first byte of the component does not equal the marker.
- */
-ndn_Error ndn_NameComponent_toNumberWithMarker(struct ndn_NameComponent *self, uint8_t marker, uint64_t *result);
-
-/**
- * An ndn_Name holds an array of ndn_NameComponent.
- */
-struct ndn_Name {
-  struct ndn_NameComponent *components; /**< pointer to the array of components. */
-  size_t maxComponents;                 /**< the number of elements in the allocated components array */
-  size_t nComponents;                   /**< the number of components in the name */
-};
-
-/**
- * Initialize an ndn_Name struct with the components array.
- * @param self pointer to the ndn_Name struct
- * @param components the pre-allocated array of ndn_NameComponent
- * @param maxComponents the number of elements in the allocated components array
- */
-static inline void ndn_Name_initialize(struct ndn_Name *self, struct ndn_NameComponent *components, size_t maxComponents) 
-{
-  self->components = components;
-  self->maxComponents = maxComponents;
-  self->nComponents = 0;
-}
-
-/**
- * Return true if the N components of this name are the same as the first N components of the given name.
- * @param self A pointer to the ndn_Name struct.
- * @param name A pointer to the other name to match.
- * @return 1 if this matches the given name, 0 otherwise.  This always returns 1 if this name is empty.
- */
-int ndn_Name_match(struct ndn_Name *self, struct ndn_Name *name);
-
-/**
- * Append a component to this name with the bytes in the given array.
- * @param self pointer to the ndn_Name struct.
- * @param value The bytes of the component.  This does not copy the bytes.
- * @param valueLength The number of bytes in value.
- * @return 0 for success, or an error code if there is no more room in the components array (nComponents is already maxComponents).
- */
-ndn_Error ndn_Name_appendComponent(struct ndn_Name *self, uint8_t* value, size_t valueLength);
-
-/**
- * Append a component to this name with the bytes in the given blob.
- * @param self pointer to the ndn_Name struct.
- * @param value An ndn_Blob with the bytes of the component.  This does not copy the bytes.
- * @return 0 for success, or an error code if there is no more room in the components array (nComponents is already maxComponents).
- */
-static inline ndn_Error ndn_Name_appendBlob(struct ndn_Name *self, struct ndn_Blob *value)
-{
-  return ndn_Name_appendComponent(self, value->value, value->length);
-}
-
-/**
- * Append a component to this name with the bytes in raw string value.
- * @param self pointer to the ndn_Name struct.
- * @param value The null-terminated string, treated as a byte array.  This does not copy the bytes.
- * @return 0 for success, or an error code if there is no more room in the components array (nComponents is already maxComponents).
- */
-ndn_Error ndn_Name_appendString(struct ndn_Name *self, char* value);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
diff --git a/src/c/publisher-public-key-digest.h b/src/c/publisher-public-key-digest.h
deleted file mode 100644
index 771ac32..0000000
--- a/src/c/publisher-public-key-digest.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_PUBLISHERPUBLICKEYDIGEST_H
-#define NDN_PUBLISHERPUBLICKEYDIGEST_H
-
-#include <ndn-cpp-dev/c/common.h>
-#include "util/blob.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * A PublisherPublicKeyDigest holds a pointer to the publisher public key digest value, if any.
- * We make a separate struct since this is used by multiple other structs.
- */
-struct ndn_PublisherPublicKeyDigest {
-  struct ndn_Blob publisherPublicKeyDigest; /**< A Blob whose value is a pointer to pre-allocated buffer.  0 for none */
-};
-
-/**
- * Initialize an ndn_PublisherPublicKeyDigest struct with 0 for none.
- */
-static inline void ndn_PublisherPublicKeyDigest_initialize(struct ndn_PublisherPublicKeyDigest *self)
-{
-  ndn_Blob_initialize(&self->publisherPublicKeyDigest, 0, 0);
-}
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/src/c/transport/socket-transport.c b/src/c/transport/socket-transport.c
deleted file mode 100644
index 09a5b57..0000000
--- a/src/c/transport/socket-transport.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#include "socket-transport.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <netdb.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <arpa/inet.h>
-#include <poll.h>
-#include "../util/ndn_memory.h"
-
-ndn_Error ndn_SocketTransport_connect(struct ndn_SocketTransport *self, ndn_SocketType socketType, char *host, unsigned short port)
-{
-  if (self->socketDescriptor >= 0) {
-    close(self->socketDescriptor);
-    self->socketDescriptor = -1;
-  }
-  
-  struct addrinfo hints;
-  ndn_memset((uint8_t *)&hints, 0, sizeof(hints));
-  hints.ai_family = AF_UNSPEC;
-  if (socketType == SOCKET_TCP)
-    hints.ai_socktype = SOCK_STREAM;
-  else if (socketType == SOCKET_UDP)
-    hints.ai_socktype = SOCK_DGRAM;
-  else
-    return NDN_ERROR_unrecognized_ndn_SocketTransport;
-
-  char portString[10];
-  sprintf(portString, "%d", port);
-  
-  struct addrinfo *serverInfo;
-  if (getaddrinfo(host, portString, &hints, &serverInfo) != 0)
-    return NDN_ERROR_SocketTransport_error_in_getaddrinfo;
-
-  // loop through all the results and connect to the first we can
-  struct addrinfo *p;
-  int socketDescriptor;
-  for(p = serverInfo; p != NULL; p = p->ai_next) {
-    if ((socketDescriptor = socket(p->ai_family, p->ai_socktype, p->ai_protocol)) == -1)
-      continue;
-
-    if (connect(socketDescriptor, p->ai_addr, p->ai_addrlen) == -1) {
-      close(socketDescriptor);
-      continue;
-    }
-
-    break;
-  }
-
-  if (p == NULL) {
-    freeaddrinfo(serverInfo);
-    return NDN_ERROR_SocketTransport_cannot_connect_to_socket;
-  }
-
-  freeaddrinfo(serverInfo);
-  self->socketDescriptor = socketDescriptor;
-
-  return NDN_ERROR_success;
-}
-
-ndn_Error ndn_SocketTransport_send(struct ndn_SocketTransport *self, uint8_t *data, size_t dataLength)
-{
-  if (self->socketDescriptor < 0)
-    return NDN_ERROR_SocketTransport_socket_is_not_open;
-  
-  int nBytes;
-  while (1) {
-    if ((nBytes = send(self->socketDescriptor, data, dataLength, 0)) < 0)
-      return NDN_ERROR_SocketTransport_error_in_send;
-    if (nBytes >= dataLength)
-      break;
-    
-    // Send more.
-    dataLength -= nBytes;
-  }
-
-  return NDN_ERROR_success;  
-}
-
-ndn_Error ndn_SocketTransport_receiveIsReady(struct ndn_SocketTransport *self, int *receiveIsReady)
-{
-  // Default to not ready.
-  *receiveIsReady = 0;
-
-  if (self->socketDescriptor < 0)
-    // The socket is not open.  Just silently return.
-    return NDN_ERROR_success;
-  
-  struct pollfd pollInfo[1];
-  pollInfo[0].fd = self->socketDescriptor;
-  pollInfo[0].events = POLLIN;
-  
-  int pollResult = poll(pollInfo, 1, 0);
-
-  if (pollResult < 0)
-    return NDN_ERROR_SocketTransport_error_in_poll;
-  else if (pollResult == 0)
-    // Timeout, so no data ready.
-    return NDN_ERROR_success;
-  else {
-   if (pollInfo[0].revents & POLLIN)
-     *receiveIsReady = 1;
-  }
-
-  return NDN_ERROR_success;
-}
-
-ndn_Error ndn_SocketTransport_receive
-  (struct ndn_SocketTransport *self, uint8_t *buffer, size_t bufferLength, size_t *nBytesOut)
-{
-  if (self->socketDescriptor < 0)
-    return NDN_ERROR_SocketTransport_socket_is_not_open;
-
-  int nBytes;  
-  if ((nBytes = recv(self->socketDescriptor, buffer, bufferLength, 0)) == -1)
-    return NDN_ERROR_SocketTransport_error_in_recv;
-
-  *nBytesOut = (size_t)nBytes;
-  
-  return NDN_ERROR_success;  
-}
-
-ndn_Error ndn_SocketTransport_close(struct ndn_SocketTransport *self)
-{
-  if (self->socketDescriptor < 0)
-    // Already closed.  Do nothing.
-    return NDN_ERROR_success;
-  
-  if (close(self->socketDescriptor) != 0)
-    return NDN_ERROR_SocketTransport_error_in_close;
-  
-  self->socketDescriptor = -1;
-  
-  return NDN_ERROR_success;
-}
diff --git a/src/c/transport/socket-transport.h b/src/c/transport/socket-transport.h
deleted file mode 100644
index d1dbb56..0000000
--- a/src/c/transport/socket-transport.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_SOCKETTRANSPORT_H
-#define NDN_SOCKETTRANSPORT_H
-
-#include <sys/socket.h>
-#include <ndn-cpp-dev/c/common.h>
-#include "../errors.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef enum {
-  SOCKET_TCP,
-  SOCKET_UDP
-} ndn_SocketType;
-  
-struct ndn_SocketTransport {
-  int socketDescriptor; /**< -1 if not connected */
-};
-  
-/**
- * Initialize the ndn_SocketTransport struct with default values for no connection yet.
- * @param self A pointer to the ndn_SocketTransport struct.
- */
-static inline void ndn_SocketTransport_initialize(struct ndn_SocketTransport *self)
-{
-  self->socketDescriptor = -1;
-}
-
-/**
- * Connect with TCP or UDP to the host:port.
- * @param self A pointer to the ndn_SocketTransport struct.
- * @param socketType SOCKET_TCP or SOCKET_UDP.
- * @param host The host to connect to.
- * @param port The port to connect to.
- * @return 0 for success, else an error code.
- */
-ndn_Error ndn_SocketTransport_connect(struct ndn_SocketTransport *self, ndn_SocketType socketType, char *host, unsigned short port);
-
-/**
- * Send data to the socket.
- * @param self A pointer to the ndn_SocketTransport struct.
- * @param data A pointer to the buffer of data to send.
- * @param dataLength The number of bytes in data.
- * @return 0 for success, else an error code.
- */
-ndn_Error ndn_SocketTransport_send(struct ndn_SocketTransport *self, uint8_t *data, size_t dataLength);
-
-/**
- * Check if there is data ready on the socket to be received with ndn_SocketTransport_receive.
- * This does not block, and returns immediately.
- * @param self A pointer to the ndn_SocketTransport struct.
- * @param receiveIsReady This will be set to 1 if data is ready, 0 if not.
- * @return 0 for success, else an error code.
- */
-ndn_Error ndn_SocketTransport_receiveIsReady(struct ndn_SocketTransport *self, int *receiveIsReady);
-
-/**
- * Receive data from the socket.  NOTE: This is a blocking call.  You should first call ndn_SocketTransport_receiveIsReady
- * to make sure there is data ready to receive.
- * @param self A pointer to the ndn_SocketTransport struct.
- * @param buffer A pointer to the buffer to receive the data.
- * @param bufferLength The maximum length of buffer.
- * @param nBytes Return the number of bytes received into buffer.
- * @return 0 for success, else an error code.
- */
-ndn_Error ndn_SocketTransport_receive
-  (struct ndn_SocketTransport *self, uint8_t *buffer, size_t bufferLength, size_t *nBytes);
-
-/**
- * Close the socket.
- * @param self A pointer to the ndn_SocketTransport struct.
- * @return 0 for success, else an error code.
- */
-ndn_Error ndn_SocketTransport_close(struct ndn_SocketTransport *self);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/src/c/transport/tcp-transport.h b/src/c/transport/tcp-transport.h
deleted file mode 100644
index 55f2e8e..0000000
--- a/src/c/transport/tcp-transport.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/* 
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_TCPTRANSPORT_H
-#define NDN_TCPTRANSPORT_H
-
-#include "socket-transport.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct ndn_TcpTransport {
-  struct ndn_SocketTransport base;
-};
-  
-/**
- * Initialize the ndn_TcpTransport struct with default values for no connection yet.
- * @param self A pointer to the ndn_TcpTransport struct.
- */
-static inline void ndn_TcpTransport_initialize(struct ndn_TcpTransport *self)
-{
-  ndn_SocketTransport_initialize(&self->base);
-}
-
-/**
- * Connect with TCP to the host:port.
- * @param self A pointer to the ndn_TcpTransport struct.
- * @param host The host to connect to.
- * @param port The port to connect to.
- * @return 0 for success, else an error code.
- */
-static inline ndn_Error ndn_TcpTransport_connect(struct ndn_TcpTransport *self, char *host, unsigned short port)
-{
-  return ndn_SocketTransport_connect(&self->base, SOCKET_TCP, host, port);
-}
-
-/**
- * Send data to the socket.
- * @param self A pointer to the ndn_TcpTransport struct.
- * @param data A pointer to the buffer of data to send.
- * @param dataLength The number of bytes in data.
- * @return 0 for success, else an error code.
- */
-static inline ndn_Error ndn_TcpTransport_send(struct ndn_TcpTransport *self, uint8_t *data, size_t dataLength)
-{
-  return ndn_SocketTransport_send(&self->base, data, dataLength);
-}
-
-/**
- * Check if there is data ready on the socket to be received with ndn_TcpTransport_receive.
- * This does not block, and returns immediately.
- * @param self A pointer to the ndn_TcpTransport struct.
- * @param receiveIsReady This will be set to 1 if data is ready, 0 if not.
- * @return 0 for success, else an error code.
- */
-static inline ndn_Error ndn_TcpTransport_receiveIsReady(struct ndn_TcpTransport *self, int *receiveIsReady)
-{
-  return ndn_SocketTransport_receiveIsReady(&self->base, receiveIsReady);
-}
-
-/**
- * Receive data from the socket.  NOTE: This is a blocking call.  You should first call ndn_SocketTransport_receiveIsReady
- * to make sure there is data ready to receive.
- * @param self A pointer to the ndn_TcpTransport struct.
- * @param buffer A pointer to the buffer to receive the data.
- * @param bufferLength The maximum length of buffer.
- * @param nBytes Return the number of bytes received into buffer.
- * @return 0 for success, else an error code.
- */
-static inline ndn_Error ndn_TcpTransport_receive
-  (struct ndn_TcpTransport *self, uint8_t *buffer, size_t bufferLength, size_t *nBytes)
-{
-  return ndn_SocketTransport_receive(&self->base, buffer, bufferLength, nBytes);
-}
-
-/**
- * Close the socket.
- * @param self A pointer to the ndn_TcpTransport struct.
- * @return 0 for success, else an error code.
- */
-static inline ndn_Error ndn_TcpTransport_close(struct ndn_TcpTransport *self)
-{
-  return ndn_SocketTransport_close(&self->base);
-}
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/src/c/transport/udp-transport.h b/src/c/transport/udp-transport.h
deleted file mode 100644
index 20d106b..0000000
--- a/src/c/transport/udp-transport.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/* 
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_UDPTRANSPORT_H
-#define NDN_UDPTRANSPORT_H
-
-#include "socket-transport.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct ndn_UdpTransport {
-  struct ndn_SocketTransport base;
-};
-  
-/**
- * Initialize the ndn_UdpTransport struct with default values for no connection yet.
- * @param self A pointer to the ndn_UdpTransport struct.
- */
-static inline void ndn_UdpTransport_initialize(struct ndn_UdpTransport *self)
-{
-  ndn_SocketTransport_initialize(&self->base);
-}
-
-/**
- * Connect with UDP to the host:port.
- * @param self A pointer to the ndn_UdpTransport struct.
- * @param host The host to connect to.
- * @param port The port to connect to.
- * @return 0 for success, else an error code.
- */
-static inline ndn_Error ndn_UdpTransport_connect(struct ndn_UdpTransport *self, char *host, unsigned short port)
-{
-  return ndn_SocketTransport_connect(&self->base, SOCKET_UDP, host, port);
-}
-
-/**
- * Send data to the socket.
- * @param self A pointer to the ndn_UdpTransport struct.
- * @param data A pointer to the buffer of data to send.
- * @param dataLength The number of bytes in data.
- * @return 0 for success, else an error code.
- */
-static inline ndn_Error ndn_UdpTransport_send(struct ndn_UdpTransport *self, uint8_t *data, size_t dataLength)
-{
-  return ndn_SocketTransport_send(&self->base, data, dataLength);
-}
-
-/**
- * Check if there is data ready on the socket to be received with ndn_UdpTransport_receive.
- * This does not block, and returns immediately.
- * @param self A pointer to the ndn_UdpTransport struct.
- * @param receiveIsReady This will be set to 1 if data is ready, 0 if not.
- * @return 0 for success, else an error code.
- */
-static inline ndn_Error ndn_UdpTransport_receiveIsReady(struct ndn_UdpTransport *self, int *receiveIsReady)
-{
-  return ndn_SocketTransport_receiveIsReady(&self->base, receiveIsReady);
-}
-
-/**
- * Receive data from the socket.  NOTE: This is a blocking call.  You should first call ndn_SocketTransport_receiveIsReady
- * to make sure there is data ready to receive.
- * @param self A pointer to the ndn_UdpTransport struct.
- * @param buffer A pointer to the buffer to receive the data.
- * @param bufferLength The maximum length of buffer.
- * @param nBytes Return the number of bytes received into buffer.
- * @return 0 for success, else an error code.
- */
-static inline ndn_Error ndn_UdpTransport_receive
-  (struct ndn_UdpTransport *self, uint8_t *buffer, size_t bufferLength, size_t *nBytes)
-{
-  return ndn_SocketTransport_receive(&self->base, buffer, bufferLength, nBytes);
-}
-
-/**
- * Close the socket.
- * @param self A pointer to the ndn_UdpTransport struct.
- * @return 0 for success, else an error code.
- */
-static inline ndn_Error ndn_UdpTransport_close(struct ndn_UdpTransport *self)
-{
-  return ndn_SocketTransport_close(&self->base);
-}
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/src/c/util/blob.h b/src/c/util/blob.h
deleted file mode 100644
index 94bbaf9..0000000
--- a/src/c/util/blob.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_BLOB_H
-#define NDN_BLOB_H
-
-#include <ndn-cpp-dev/c/common.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * An ndn_Blob holds a pointer to a read-only pre-allocated buffer and its length.
- */
-struct ndn_Blob {
-  uint8_t *value; /**< pointer to the pre-allocated buffer for the value. Must be treated as read only. */
-  size_t length;  /**< the number of bytes in value. */
-};
-
-/**
- * Initialize the ndn_Blob struct with the given value.
- * @param self pointer to the ndn_Blob struct.
- * @param value The pre-allocated buffer for the value, or 0 for none.
- * @param length The number of bytes in value.
- */
-static inline void ndn_Blob_initialize(struct ndn_Blob *self, uint8_t *value, size_t length) 
-{
-  self->value = value;
-  self->length = length;
-}
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/src/c/util/crypto.c b/src/c/util/crypto.c
deleted file mode 100644
index 384e5b8..0000000
--- a/src/c/util/crypto.c
+++ /dev/null
@@ -1,15 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#include "ndn-cpp-dev/c/util/crypto.h"
-
-void ndn_digestSha256(const uint8_t *data, size_t dataLength, uint8_t *digest)
-{
-  SHA256_CTX sha256;
-  SHA256_Init(&sha256);
-  SHA256_Update(&sha256, data, dataLength);
-  SHA256_Final(digest, &sha256);
-}
diff --git a/src/c/util/dynamic-uint8-array.c b/src/c/util/dynamic-uint8-array.c
deleted file mode 100644
index 23bfd7c..0000000
--- a/src/c/util/dynamic-uint8-array.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#include "dynamic-uint8-array.h"
-
-ndn_Error ndn_DynamicUInt8Array_reallocArray(struct ndn_DynamicUInt8Array *self, size_t length)
-{
-  if (!self->realloc)
-    return NDN_ERROR_DynamicUInt8Array_realloc_function_pointer_not_supplied;
-  
-  // See if double is enough.
-  size_t newLength = self->length * 2;
-  if (length > newLength)
-    // The needed length is much greater, so use it.
-    newLength = length;
-    
-  uint8_t *newArray = (*self->realloc)(self, self->array, newLength);
-  if (!newArray)
-    return NDN_ERROR_DynamicUInt8Array_realloc_failed;
-  
-  self->array = newArray;
-  self->length = newLength;
-  
-  return NDN_ERROR_success;
-}
diff --git a/src/c/util/dynamic-uint8-array.h b/src/c/util/dynamic-uint8-array.h
deleted file mode 100644
index 6548662..0000000
--- a/src/c/util/dynamic-uint8-array.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_DYNAMICUCHARARRAY_H
-#define NDN_DYNAMICUCHARARRAY_H
-
-#include "../errors.h"
-#include "ndn_memory.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct ndn_DynamicUInt8Array {
-  uint8_t *array; /**< the allocated array buffer */
-  size_t length;  /**< the length of the allocated array buffer */
-  uint8_t * (*realloc)
-    (struct ndn_DynamicUInt8Array *self, uint8_t *array, size_t length); /**< a pointer to a function that reallocates array and returns a new pointer to a buffer of
-                                                                                      * length bytes, or 0 for error.  On success, the contents of the old buffer are copied to the new one.
-                                                                                      * On success, the original array pointer will no longer be used.
-                                                                                      * self is a pointer to the struct ndn_DynamicUInt8Array which is calling realloc.
-                                                                                      * This function pointer may be 0 (which causes an error if a reallocate is necessary). */
-};
-
-/**
- * Initialize an ndn_DynamicUInt8Array struct with the given array buffer.
- * @param self pointer to the ndn_DynamicUInt8Array struct
- * @param array the allocated array buffer
- * @param length the length of the allocated array buffer
- * @param reallocFunction see ndn_DynamicUInt8Array_ensureLength.  This may be 0.
- */
-static inline void ndn_DynamicUInt8Array_initialize
-  (struct ndn_DynamicUInt8Array *self, uint8_t *array, size_t length, 
-   uint8_t * (*reallocFunction)(struct ndn_DynamicUInt8Array *self, uint8_t *, size_t)) 
-{
-  self->array = array;
-  self->length = length;
-  self->realloc = reallocFunction;
-}
-
-/**
- * Do the work of ndn_DynamicUInt8Array_ensureLength if realloc is necessary.
- * If the self->realloc function pointer is null, then return an error.
- * If not null, call self->realloc to reallocate self->array, and update self->length (which may be greater than length).
- * @param self pointer to the ndn_DynamicUInt8Array struct
- * @param length the needed minimum size for self->length
- * @return 0 for success, else an error code if can't reallocate the array
- */
-ndn_Error ndn_DynamicUInt8Array_reallocArray(struct ndn_DynamicUInt8Array *self, size_t length);
-
-/**
- * Ensure that self->length is greater than or equal to length.  If it is, just return 0 for success.
- * Otherwise, if the self->realloc function pointer is null, then return an error.
- * If not null, call self->realloc to reallocate self->array, and update self->length (which may be greater than length).
- * @param self pointer to the ndn_DynamicUInt8Array struct
- * @param length the needed minimum size for self->length
- * @return 0 for success, else an error code if need to reallocate the array but can't
- */
-static inline ndn_Error ndn_DynamicUInt8Array_ensureLength(struct ndn_DynamicUInt8Array *self, size_t length) 
-{
-  if (self->length >= length)
-    return NDN_ERROR_success;
-
-  return ndn_DynamicUInt8Array_reallocArray(self, length);
-}
-
-/**
- * Copy value into self->array at offset, using ndn_DynamicUInt8Array_ensureLength to make sure self->array has enough length.
- * @param self pointer to the ndn_DynamicUInt8Array struct
- * @param value the buffer to copy from
- * @param valueLength the length of the value buffer
- * @param offset the offset in self->array to copy to
- * @return 0 for success, else an error code if need to reallocate the array but can't
- */
-static inline ndn_Error ndn_DynamicUInt8Array_set
-  (struct ndn_DynamicUInt8Array *self, uint8_t *value, size_t valueLength, size_t offset) 
-{
-  ndn_Error error;
-  if ((error = ndn_DynamicUInt8Array_ensureLength(self, valueLength + offset)))
-    return error;
-  ndn_memcpy(self->array + offset, value, valueLength);
-  return NDN_ERROR_success;
-};
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
diff --git a/src/c/util/ndn_memory.c b/src/c/util/ndn_memory.c
deleted file mode 100644
index a9c3510..0000000
--- a/src/c/util/ndn_memory.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#include "ndn_memory.h"
-
-#if !NDN_CPP_HAVE_MEMCMP
-int ndn_memcmp(const uint8_t *buf1, const uint8_t *buf2, size_t len)
-{
-  size_t i;
-  
-  for (i = 0; i < len; i++) {
-    if (buf1[i] > buf2[i])
-      return 1;
-    else if (buf1[i] < buf2[i])
-      return -1;
-  }
-  
-  return 0;
-}
-#else
-int ndn_memcmp_stub_to_avoid_empty_file_warning = 0;
-#endif
-
-#if !NDN_CPP_HAVE_MEMCPY
-void ndn_memcpy(uint8_t *dest, const uint8_t *src, size_t len)
-{
-  size_t i;
-  
-  for (i = 0; i < len; i++)
-    dest[i] = src[i];
-}
-#else
-int ndn_memcpy_stub_to_avoid_empty_file_warning = 0;
-#endif
-
-#if !NDN_CPP_HAVE_MEMSET
-void ndn_memset(uint8_t *dest, int val, size_t len)
-{
-  size_t i;
-  
-  for (i = 0; i < len; i++)
-    dest[i] = (uint8_t)val;
-}
-#else
-int ndn_memset_stub_to_avoid_empty_file_warning = 0;
-#endif
diff --git a/src/c/util/ndn_memory.h b/src/c/util/ndn_memory.h
deleted file mode 100644
index d0779be..0000000
--- a/src/c/util/ndn_memory.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-/*
- * Based on NDN_CPP_HAVE_MEMCPY and NDN_CPP_HAVE_MEMSET in ndn-cpp-config.h, use the library version or a local implementation of memcmp, memcpy and memset.
- */
-
-#ifndef NDN_MEMORY_H
-#define NDN_MEMORY_H
-
-#include <ndn-cpp-dev/c/common.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if NDN_CPP_HAVE_MEMCMP
-#include <memory.h>
-/**
- * Use the library version of memcmp.
- */
-static inline int ndn_memcmp(const uint8_t *buf1, const uint8_t *buf2, size_t len) { return memcmp(buf1, buf2, len); }
-#else
-/**
- * Use a local implementation of memcmp instead of the library version.
- */
-int ndn_memcmp(const uint8_t *buf1, const uint8_t *buf2, size_t len);
-#endif
-
-#if NDN_CPP_HAVE_MEMCPY
-#include <memory.h>
-/**
- * Use the library version of memcpy.
- */
-static inline void ndn_memcpy(uint8_t *dest, const uint8_t *src, size_t len) { memcpy(dest, src, len); }
-#else
-/**
- * Use a local implementation of memcpy instead of the library version.
- */
-void ndn_memcpy(uint8_t *dest, const uint8_t *src, size_t len);
-#endif
-
-#if NDN_CPP_HAVE_MEMSET
-#include <memory.h>
-/**
- * Use the library version of memset.
- */
-static inline void ndn_memset(uint8_t *dest, int val, size_t len) { memset(dest, val, len); }
-#else
-/**
- * Use a local implementation of memset instead of the library version.
- */
-void ndn_memset(uint8_t *dest, int val, size_t len);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
diff --git a/src/c/util/ndn_realloc.c b/src/c/util/ndn_realloc.c
deleted file mode 100644
index f3147f4..0000000
--- a/src/c/util/ndn_realloc.c
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#include <stdlib.h>
-#include "ndn_realloc.h"
-
-uint8_t *ndn_realloc(struct ndn_DynamicUInt8Array *self, uint8_t *array, size_t length)
-{
-  return (uint8_t *)realloc(array, length);
-}
diff --git a/src/c/util/ndn_realloc.h b/src/c/util/ndn_realloc.h
deleted file mode 100644
index 7aeb6af..0000000
--- a/src/c/util/ndn_realloc.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_NDN_REALLOC_H
-#define NDN_NDN_REALLOC_H
-
-#include "dynamic-uint8-array.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * Wrap the C stdlib realloc to convert to/from void * to uint8_t *.
- * This can be used by ndn_DynamicUInt8Array_initialize.
- * @param self This is ignored.
- * @param array the allocated array buffer to realloc.
- * @param length the length for the new array buffer.
- * @return the new allocated array buffer.
- */
-uint8_t *ndn_realloc(struct ndn_DynamicUInt8Array *self, uint8_t *array, size_t length);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/src/c/util/time.c b/src/c/util/time.c
deleted file mode 100644
index 00719c2..0000000
--- a/src/c/util/time.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#include <ndn-cpp-dev/ndn-cpp-config.h>
-#if NDN_CPP_HAVE_TIME_H
-#include <time.h>
-#endif
-#if NDN_CPP_HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#include <math.h>
-#include <string.h>
-#include <stdio.h>
-#include "time.h"
-
-ndn_MillisecondsSince1970 
-ndn_getNowMilliseconds()
-{
-  struct timeval t;
-  // Note: configure.ac requires gettimeofday.
-  gettimeofday(&t, 0);
-  return t.tv_sec * 1000.0 + t.tv_usec / 1000.0;
-}
-
-ndn_Error
-ndn_toIsoString(ndn_MillisecondsSince1970 milliseconds, char *isoString)
-{
-#if NDN_CPP_HAVE_GMTIME_SUPPORT
-  if (milliseconds < 0)
-    return NDN_ERROR_Calendar_time_value_out_of_range;
-  else if (milliseconds > 2e14)
-    // 2e14 is about the year 8300.  We don't want to go over a 4-digit year.
-    return NDN_ERROR_Calendar_time_value_out_of_range;
-  
-  double secondsSince1970 = milliseconds / 1000.0;
-  char fractionBuffer[10];
-  sprintf(fractionBuffer, "%.06lf", fmod(secondsSince1970, 1.0));
-  const char *fraction = strchr(fractionBuffer, '.');
-  if (!fraction)
-    // Don't expect this to happen.
-    fraction = ".000000";
-    
-  time_t seconds = (time_t)secondsSince1970;
-  struct tm* gmt = gmtime(&seconds);
-  sprintf(isoString, "%04d%02d%02dT%02d%02d%02d%s", 1900 + gmt->tm_year, gmt->tm_mon + 1, gmt->tm_mday,
-    gmt->tm_hour, gmt->tm_min, gmt->tm_sec, fraction);
-  
-  return NDN_ERROR_success;
-#else
-  return NDN_ERROR_Time_functions_are_not_supported_by_the_standard_library;
-#endif
-}
-
-ndn_Error
-ndn_fromIsoString(const char* isoString, ndn_MillisecondsSince1970 *milliseconds)
-{
-#if NDN_CPP_HAVE_GMTIME_SUPPORT
-  // Initialize time zone, etc.
-  time_t dummyTime = 0;
-  struct tm tm1 = *gmtime(&dummyTime);
-  
-  sscanf(isoString, "%4d%2d%2dT%2d%2d", &tm1.tm_year, &tm1.tm_mon, &tm1.tm_mday, &tm1.tm_hour, &tm1.tm_min);
-  // Skip the time past minutes and get the float seconds.
-  double seconds;
-  sscanf(isoString + (4 + 2 + 2 + 1 + 2 + 2), "%lf", &seconds);
-  
-  // tm_year starts from 1900.
-  tm1.tm_year -= 1900;
-  // tm_mon starts from 0, not 1.
-  tm1.tm_mon -= 1;
-  tm1.tm_sec = 0;
-  
-  *milliseconds = (timegm(&tm1) + seconds) * 1000.0;
-  return NDN_ERROR_success;
-#else
-  return NDN_ERROR_Time_functions_are_not_supported_by_the_standard_library;
-#endif
-}
diff --git a/src/c/util/time.h b/src/c/util/time.h
deleted file mode 100644
index 674ef21..0000000
--- a/src/c/util/time.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_TIME_H
-#define NDN_TIME_H
-
-#include <ndn-cpp-dev/c/common.h>
-#include "../errors.h"
-
-#ifdef  __cplusplus
-extern "C" {
-#endif
-
-/**
- * Use gettimeofday to return the current time in milliseconds.
- * @return The current time in milliseconds since 1/1/1970, including fractions of a millisecond according to timeval.tv_usec.
- */
-ndn_MillisecondsSince1970 
-ndn_getNowMilliseconds();
-
-/**
- * Convert the time from milliseconds to an ISO time string, for example "20131018T184138.423355".
- * @param milliseconds The time in milliseconds since 1/1/1970, including fractions of a millisecond.
- * @param isoString A buffer of at least 23 bytes to receive the null-terminated ISO time string.
- * @return 0 for success, else an error code including if we don't have necessary standard library support.
- */
-ndn_Error
-ndn_toIsoString(ndn_MillisecondsSince1970 milliseconds, char *isoString);
-
-/**
- * Parse the ISO time string and return the time in milliseconds.
- * @param isoString The ISO time string, for example "20131018T184138.423355".
- * @param milliseconds Return the time in milliseconds since 1/1/1970, including fractions of a millisecond.
- * @return 0 for success, else an error code including if we don't have necessary standard library support.
- */
-ndn_Error
-ndn_fromIsoString(const char* isoString, ndn_MillisecondsSince1970 *milliseconds);
-
-#ifdef  __cplusplus
-}
-#endif
-
-#endif
diff --git a/src/common.cpp b/src/common.cpp
index 31569e3..53df6e1 100644
--- a/src/common.cpp
+++ b/src/common.cpp
@@ -7,13 +7,7 @@
 
 #include <sstream>
 #include <ndn-cpp-dev/common.hpp>
-
-#if NDN_CPP_HAVE_TIME_H
-#include <time.h>
-#endif
-#if NDN_CPP_HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
+#include "util/time.hpp"
 
 using namespace std;
 
@@ -40,10 +34,7 @@
 MillisecondsSince1970
 getNow()
 {
-  struct timeval t;
-  // Note: configure.ac requires gettimeofday.
-  gettimeofday(&t, 0);
-  return t.tv_sec * 1000.0 + t.tv_usec / 1000.0;
+  return getNowMilliseconds();
 }
 
 
diff --git a/src/encoding/binary-xml-decoder.hpp b/src/encoding/binary-xml-decoder.hpp
deleted file mode 100644
index e7583e5..0000000
--- a/src/encoding/binary-xml-decoder.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_BINARYXMLDECODER_HPP
-#define NDN_BINARYXMLDECODER_HPP
-
-#include <stdexcept>
-#include "../c/errors.h"
-#include "../c/encoding/binary-xml-decoder.h"
-
-using namespace std;
-
-namespace ndn {
-  
-/**
- * A BinaryXmlDecoder extends a C ndn_BinaryXmlDecoder struct and wraps related functions.
- */
-class BinaryXmlDecoder : public ndn_BinaryXmlDecoder {
-public:
-  /**
-   * Initialize the base ndn_BinaryXmlDecoder struct with the input.
-   */
-  BinaryXmlDecoder(const uint8_t *input, size_t inputLength) 
-  {
-    ndn_BinaryXmlDecoder_initialize(this, (uint8_t *)input, inputLength);
-  }
-  
-  /**
-   * Decode the header from the input starting at offset, and if it is a DTAG where the value is the expectedTag,
-   * then return true, else false.  Do not update offset, including if throwing an exception.
-   * @param expectedTag the expected value for DTAG
-   * @return true if got the expected tag, else false
-   */
-  bool 
-  peekDTag(unsigned int expectedTag) 
-  {
-    int gotExpectedTag;
-    ndn_Error error;
-    if ((error = ndn_BinaryXmlDecoder_peekDTag(this, expectedTag, &gotExpectedTag)))
-      throw runtime_error(ndn_getErrorString(error));
-    
-    return gotExpectedTag;
-  }
-};
-
-}
-
-#endif
diff --git a/src/encoding/binary-xml-encoder.hpp b/src/encoding/binary-xml-encoder.hpp
deleted file mode 100644
index 6ae3913..0000000
--- a/src/encoding/binary-xml-encoder.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_BINARYXMLENCODER_HPP
-#define NDN_BINARYXMLENCODER_HPP
-
-#include <vector>
-#include <ndn-cpp-dev/common.hpp>
-#include "../util/dynamic-uint8-vector.hpp"
-#include "../c/encoding/binary-xml-encoder.h"
-
-namespace ndn {
-  
-/**
- * A BinaryXmlEncoder extends a C ndn_BinaryXmlEncoder struct and wraps related functions.
- */
-class BinaryXmlEncoder : public ndn_BinaryXmlEncoder {
-public:
-  /**
-   * Initialize the base ndn_BinaryXmlEncoder struct with the initialLength.  Use simpleRealloc.
-   * @param initialLength The initial size of the output.  If omitted, use 16.
-   */
-  BinaryXmlEncoder(size_t initialLength = 16) 
-  : output_(16)
-  {
-    ndn_BinaryXmlEncoder_initialize(this, &output_);
-  }
-  
-  /**
-   * Resize the output vector to the correct encoding length and return.
-   * @return The encoding as a shared_ptr.  Assume that the caller now owns the vector.
-   */
-  const ptr_lib::shared_ptr<std::vector<uint8_t> >& 
-  getOutput() 
-  {
-    output_.get()->resize(offset);
-    return output_.get();
-  }
-  
-  DynamicUInt8Vector output_;
-};
-
-}
-
-#endif
diff --git a/src/encoding/binary-xml-structure-decoder.hpp b/src/encoding/binary-xml-structure-decoder.hpp
deleted file mode 100644
index 2707763..0000000
--- a/src/encoding/binary-xml-structure-decoder.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_BINARYXMLSTRUCTUREDECODER_HPP
-#define NDN_BINARYXMLSTRUCTUREDECODER_HPP
-
-#include <stdexcept>
-#include "../c/encoding/BinaryXMLStructureDecoder.h"
-
-namespace ndn {
-  
-/**
- * A BinaryXmlStructureDecoder extends a C ndn_BinaryXmlStructureDecoder struct and wraps related functions.
- */
-class BinaryXmlStructureDecoder : private ndn_BinaryXmlStructureDecoder {
-public:
-  BinaryXmlStructureDecoder() 
-  {
-    ndn_BinaryXmlStructureDecoder_initialize(this);
-  }
-  
-  /**
-   * Continue scanning input starting from getOffset() to find the element end.  
-   * If the end of the element which started at offset 0 is found, then return true and getOffset() is the length of 
-   *   the element.  Otherwise return false, which means you should read more into input and call again.
-   * @param input the input buffer. You have to pass in input each time because the buffer could be reallocated.
-   * @param inputLength the number of bytes in input.
-   * @return true if found the element end, false if need to read more. (This is the same as returning gotElementEnd().)
-   */
-  bool 
-  findElementEnd(uint8_t *input, size_t inputLength) 
-  {
-    ndn_Error error;
-    if ((error = ndn_BinaryXmlStructureDecoder_findElementEnd(this, input, inputLength)))
-      throw runtime_error(ndn_getErrorString(error));
-    return gotElementEnd();
-  }
-  
-  size_t 
-  getOffset() const { return offset; }
-  
-  bool 
-  gotElementEnd() const { return gotElementEnd != 0; }
-};
-
-}
-
-#endif
diff --git a/src/encoding/binary-xml-wire-format.cpp b/src/encoding/binary-xml-wire-format.cpp
deleted file mode 100644
index dce8b7b..0000000
--- a/src/encoding/binary-xml-wire-format.cpp
+++ /dev/null
@@ -1,336 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#include <stdexcept>
-#include <ndn-cpp-dev/interest.hpp>
-#include <ndn-cpp-dev/data.hpp>
-#include <ndn-cpp-dev/forwarding-entry.hpp>
-#include <ndn-cpp-dev/encoding/binary-xml-wire-format.hpp>
-#include "../c/encoding/binary-xml-interest.h"
-#include "../c/encoding/binary-xml-data.h"
-#include "../c/encoding/binary-xml-forwarding-entry.h"
-#include "binary-xml-encoder.hpp"
-#include "binary-xml-decoder.hpp"
-
-using namespace std;
-
-namespace ndn {
-
-namespace c {
-
-class Exclude : public ndn::Exclude
-{
-public:
-  void
-  get(struct ndn_Exclude& excludeStruct) const
-  {
-    if (excludeStruct.maxEntries < size())
-      throw runtime_error("excludeStruct.maxEntries must be >= this exclude getEntryCount()");
-
-    int entries = 0;
-    for (Exclude::const_reverse_iterator i = rbegin (); i != rend (); i++)
-      {
-        if (!i->first.empty())
-          {
-            excludeStruct.entries[entries].type = ndn_Exclude_COMPONENT;
-            excludeStruct.entries[entries].component.value.value = const_cast<uint8_t*>(i->first.getValue().buf());
-            excludeStruct.entries[entries].component.value.length = i->first.getValue().size();
-            ++entries;
-          }
-        if (i->second)
-          {
-            excludeStruct.entries[entries].type = ndn_Exclude_ANY;
-            ++entries;
-          }
-      }
-
-    excludeStruct.nEntries = entries;
-  }
-
-  void
-  set(const struct ndn_Exclude& excludeStruct)
-  {
-    clear();
-
-    if (excludeStruct.nEntries == 0)
-      return;
-
-    int i = 0;
-    if (excludeStruct.entries[i].type == ndn_Exclude_ANY) {
-      appendExclude("/", true);
-      i++;
-    }
-
-    while (i < excludeStruct.nEntries) {
-      ndn_ExcludeEntry *entry = &excludeStruct.entries[i];
-
-      if (entry->type != ndn_Exclude_COMPONENT)
-        throw runtime_error("unrecognized ndn_ExcludeType");
-
-      Name::Component excludedComponent (entry->component.value.value, entry->component.value.length);
-      ++i;
-      entry = &excludeStruct.entries[i];
-
-      if (i < excludeStruct.nEntries) {
-        if (entry->type == ndn_Exclude_ANY) {
-          appendExclude(excludedComponent, true);
-          ++i;
-        }
-        else
-          appendExclude(excludedComponent, false);
-      }
-      else
-        appendExclude(excludedComponent, false);
-    }
-  }
-};
-
-class Name : public ndn::Name
-{
-public:
-  void 
-  get(struct ndn_Name& nameStruct) const
-  {
-    if (nameStruct.maxComponents < size())
-      throw runtime_error("nameStruct.maxComponents must be >= this name getNComponents()");
-  
-    nameStruct.nComponents = size();
-    for (size_t i = 0; i < nameStruct.nComponents; ++i) {
-      nameStruct.components[i].value.value = const_cast<uint8_t*>(ndn::Name::get(i).getValue().buf());
-      nameStruct.components[i].value.length = ndn::Name::get(i).getValue().size();
-    }
-  }
-  
-  void 
-  set(const struct ndn_Name& nameStruct) 
-  {
-    clear();
-    for (size_t i = 0; i < nameStruct.nComponents; ++i)
-      append(nameStruct.components[i].value.value, nameStruct.components[i].value.length);  
-  }
-};
-
-class Interest : public ndn::Interest
-{
-public:
-  void 
-  get(struct ndn_Interest& interestStruct) const 
-  {
-    reinterpret_cast<const c::Name&>(getName()).get(interestStruct.name);
-    interestStruct.minSuffixComponents = getMinSuffixComponents();
-    interestStruct.maxSuffixComponents = getMaxSuffixComponents();
-    // publisherPublicKeyDigest_.get(interestStruct.publisherPublicKeyDigest);
-    reinterpret_cast<const c::Exclude&>(getExclude()).get(interestStruct.exclude);
-    interestStruct.childSelector = getChildSelector();
-    interestStruct.answerOriginKind = getMustBeFresh() ?
-      (ndn_Interest_ANSWER_CONTENT_STORE | ndn_Interest_ANSWER_GENERATED)
-      :
-      (ndn_Interest_ANSWER_CONTENT_STORE | ndn_Interest_ANSWER_GENERATED | ndn_Interest_ANSWER_STALE);
-    interestStruct.scope = getScope();
-    interestStruct.interestLifetimeMilliseconds = getInterestLifetime();
-
-    interestStruct.nonce.length = 4;
-    interestStruct.nonce.value = const_cast<uint8_t*>(reinterpret_cast<const uint8_t *>(getNonce()));
-  }  
-
-  void 
-  set(const struct ndn_Interest& interestStruct) 
-  {
-    reinterpret_cast<c::Name&>(getName()).set(interestStruct.name);
-    setMinSuffixComponents(interestStruct.minSuffixComponents);
-    setMaxSuffixComponents(interestStruct.maxSuffixComponents);
-  
-    // publisherPublicKeyDigest_.set(interestStruct.publisherPublicKeyDigest);
-  
-    reinterpret_cast<c::Exclude&>(getExclude()).set(interestStruct.exclude);
-    setChildSelector(interestStruct.childSelector);
-    // answerOriginKind_ = interestStruct.answerOriginKind;
-    setScope(interestStruct.scope);
-    setInterestLifetime(interestStruct.interestLifetimeMilliseconds);
-
-    setNonce(*reinterpret_cast<uint32_t*>(interestStruct.nonce.value));
-  }
-};
-
-class Data : public ndn::Data
-{
-public:
-  void 
-  get(struct ndn_Data& dataStruct) const 
-  {
-    // signature_->get(dataStruct.signature);
-    // name_.get(dataStruct.name);
-    // metaInfo_.get(dataStruct.metaInfo);
-    // content_.get(dataStruct.content);
-  }
-
-  void 
-  set(const struct ndn_Data& dataStruct)
-  {
-    // signature_->set(dataStruct.signature);
-    // name_.set(dataStruct.name);
-    // metaInfo_.set(dataStruct.metaInfo);
-    // content_ = Blob(dataStruct.content);
-  }
-};
-
-class ForwardingEntry : public ndn::ForwardingEntry
-{
-public:
-  void 
-  get(struct ndn_ForwardingEntry& forwardingEntryStruct) const 
-  {
-    reinterpret_cast<const c::Name&>(getPrefix()).get(forwardingEntryStruct.prefix);
-    // publisherPublicKeyDigest_.get(forwardingEntryStruct.publisherPublicKeyDigest);
-    forwardingEntryStruct.faceId = getFaceId();
-    // forwardingEntryStruct.forwardingFlags = getForwardingFlags();
-    forwardingEntryStruct.freshnessSeconds = getFreshnessPeriod() / 1000;
-
-    forwardingEntryStruct.action.length = getAction().size();
-    if (getAction().size() > 0)
-      forwardingEntryStruct.action.value = (uint8_t *)&getAction();
-    else
-      forwardingEntryStruct.action.value = 0;
-  }
-
-  void 
-  set(const struct ndn_ForwardingEntry& forwardingEntryStruct) 
-  {
-    if (forwardingEntryStruct.action.value && forwardingEntryStruct.action.length > 0)
-      setAction(string(forwardingEntryStruct.action.value, forwardingEntryStruct.action.value + forwardingEntryStruct.action.length));
-    else
-      setAction("");
-
-    Name prefix;
-    reinterpret_cast<c::Name&>(prefix).set(forwardingEntryStruct.prefix);
-    setPrefix(prefix);
-    // publisherPublicKeyDigest_.set(forwardingEntryStruct.publisherPublicKeyDigest);  
-    setFaceId(forwardingEntryStruct.faceId);
-    // setForwardingFlags(forwardingEntryStruct.forwardingFlags);
-    setFreshnessPeriod(forwardingEntryStruct.freshnessSeconds * 1000);
-  }
-};
-
-}
-
-
-// This is declared in the WireFormat class.
-WireFormat*
-WireFormat::newInitialDefaultWireFormat() 
-{
-  return new BinaryXmlWireFormat();
-}
-  
-Blob 
-BinaryXmlWireFormat::encodeInterest(const Interest& interest) 
-{
-  struct ndn_NameComponent nameComponents[100];
-  struct ndn_ExcludeEntry excludeEntries[100];
-  struct ndn_Interest interestStruct;
-  ndn_Interest_initialize
-    (&interestStruct, nameComponents, sizeof(nameComponents) / sizeof(nameComponents[0]), 
-     excludeEntries, sizeof(excludeEntries) / sizeof(excludeEntries[0]));
-  reinterpret_cast<const c::Interest&>(interest).get(interestStruct);
-
-  BinaryXmlEncoder encoder;
-  ndn_Error error;
-  if ((error = ndn_encodeBinaryXmlInterest(&interestStruct, &encoder)))
-    throw runtime_error(ndn_getErrorString(error));
-     
-  return encoder.getOutput();
-}
-
-void 
-BinaryXmlWireFormat::decodeInterest(Interest& interest, const uint8_t *input, size_t inputLength)
-{
-  struct ndn_NameComponent nameComponents[100];
-  struct ndn_ExcludeEntry excludeEntries[100];
-  struct ndn_Interest interestStruct;
-  ndn_Interest_initialize
-    (&interestStruct, nameComponents, sizeof(nameComponents) / sizeof(nameComponents[0]), 
-     excludeEntries, sizeof(excludeEntries) / sizeof(excludeEntries[0]));
-    
-  BinaryXmlDecoder decoder(input, inputLength);  
-  ndn_Error error;
-  if ((error = ndn_decodeBinaryXmlInterest(&interestStruct, &decoder)))
-    throw runtime_error(ndn_getErrorString(error));
-
-  reinterpret_cast<c::Interest&>(interest).set(interestStruct);
-}
-
-Blob 
-BinaryXmlWireFormat::encodeData(const Data& data, size_t *signedPortionBeginOffset, size_t *signedPortionEndOffset) 
-{
-  struct ndn_NameComponent nameComponents[100];
-  struct ndn_NameComponent keyNameComponents[100];
-  struct ndn_Data dataStruct;
-  ndn_Data_initialize
-    (&dataStruct, nameComponents, sizeof(nameComponents) / sizeof(nameComponents[0]), 
-     keyNameComponents, sizeof(keyNameComponents) / sizeof(keyNameComponents[0]));
-  reinterpret_cast<const c::Data&>(data).get(dataStruct);
-
-  BinaryXmlEncoder encoder(1500);
-  ndn_Error error;
-  if ((error = ndn_encodeBinaryXmlData(&dataStruct, signedPortionBeginOffset, signedPortionEndOffset, &encoder)))
-    throw runtime_error(ndn_getErrorString(error));
-     
-  return encoder.getOutput();
-}
-
-void 
-BinaryXmlWireFormat::decodeData
-  (Data& data, const uint8_t *input, size_t inputLength, size_t *signedPortionBeginOffset, size_t *signedPortionEndOffset)
-{
-  struct ndn_NameComponent nameComponents[100];
-  struct ndn_NameComponent keyNameComponents[100];
-  struct ndn_Data dataStruct;
-  ndn_Data_initialize
-    (&dataStruct, nameComponents, sizeof(nameComponents) / sizeof(nameComponents[0]), 
-     keyNameComponents, sizeof(keyNameComponents) / sizeof(keyNameComponents[0]));
-    
-  BinaryXmlDecoder decoder(input, inputLength);  
-  ndn_Error error;
-  if ((error = ndn_decodeBinaryXmlData(&dataStruct, signedPortionBeginOffset, signedPortionEndOffset, &decoder)))
-    throw runtime_error(ndn_getErrorString(error));
-
-  reinterpret_cast<c::Data&>(data).set(dataStruct);
-}
-
-Blob 
-BinaryXmlWireFormat::encodeForwardingEntry(const ForwardingEntry& forwardingEntry) 
-{
-  struct ndn_NameComponent prefixNameComponents[100];
-  struct ndn_ForwardingEntry forwardingEntryStruct;
-  ndn_ForwardingEntry_initialize
-    (&forwardingEntryStruct, prefixNameComponents, sizeof(prefixNameComponents) / sizeof(prefixNameComponents[0]));
-  reinterpret_cast<const c::ForwardingEntry&>(forwardingEntry).get(forwardingEntryStruct);
-
-  BinaryXmlEncoder encoder;
-  ndn_Error error;
-  if ((error = ndn_encodeBinaryXmlForwardingEntry(&forwardingEntryStruct, &encoder)))
-    throw runtime_error(ndn_getErrorString(error));
-     
-  return encoder.getOutput();
-}
-
-void 
-BinaryXmlWireFormat::decodeForwardingEntry(ForwardingEntry& forwardingEntry, const uint8_t *input, size_t inputLength)
-{
-  struct ndn_NameComponent prefixNameComponents[100];
-  struct ndn_ForwardingEntry forwardingEntryStruct;
-  ndn_ForwardingEntry_initialize
-    (&forwardingEntryStruct, prefixNameComponents, sizeof(prefixNameComponents) / sizeof(prefixNameComponents[0]));
-    
-  BinaryXmlDecoder decoder(input, inputLength);  
-  ndn_Error error;
-  if ((error = ndn_decodeBinaryXmlForwardingEntry(&forwardingEntryStruct, &decoder)))
-    throw runtime_error(ndn_getErrorString(error));
-
-  reinterpret_cast<c::ForwardingEntry&>(forwardingEntry).set(forwardingEntryStruct);
-}
-
-}
diff --git a/src/encoding/cryptopp/asn_ext.cpp b/src/encoding/cryptopp/asn_ext.cpp
index 7a8eda1..4df06c5 100644
--- a/src/encoding/cryptopp/asn_ext.cpp
+++ b/src/encoding/cryptopp/asn_ext.cpp
@@ -8,14 +8,6 @@
 
 #include <ndn-cpp-dev/ndn-cpp-config.h>
 #include "asn_ext.hpp"
-
-#if NDN_CPP_HAVE_TIME_H
-#include <time.h>
-#endif
-#if NDN_CPP_HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-
 #include "../../util/time.hpp"
 
 #include <boost/format.hpp>
@@ -33,17 +25,21 @@
   else if (time > 2e14)
     // 2e14 is about the year 8300.  We don't want to go over a 4-digit year.
     throw Asn::Error("Calendar time value out of range");
-  
-  time_t secondsSince1970 = time / 1000;
-  struct tm* gmt = gmtime(&secondsSince1970);
 
-  std::string asn1time ((boost::format("%04d%02d%02d%02d%02d%02dZ")
-                         % (1900 + gmt->tm_year)
-                         % (gmt->tm_mon + 1)
-                         % gmt->tm_mday
-                         % gmt->tm_hour
-                         % gmt->tm_min
-                         % gmt->tm_sec).str());
+
+  boost::posix_time::ptime boostTime =
+    UNIX_EPOCH_TIME + boost::posix_time::milliseconds(time);
+  
+  const boost::format f = boost::format("%04d%02d%02d%02d%02d%02dZ")
+                % boostTime.date().year_month_day().year
+                % boostTime.date().year_month_day().month.as_number()
+                % boostTime.date().year_month_day().day.as_number()
+                % boostTime.time_of_day().hours()
+                % boostTime.time_of_day().minutes()
+                % boostTime.time_of_day().seconds()
+    ;
+
+  std::string asn1time = f.str();
   
   bt.Put(GENERALIZED_TIME);
   size_t lengthBytes = DERLengthEncode(bt, asn1time.size());
diff --git a/src/encoding/element-listener.cpp b/src/encoding/element-listener.cpp
deleted file mode 100644
index 3b56717..0000000
--- a/src/encoding/element-listener.cpp
+++ /dev/null
@@ -1,18 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#include <ndn-cpp-dev/encoding/element-listener.hpp>
-
-namespace ndn {
-
-void 
-ElementListener::staticOnReceivedElement(struct ndn_ElementListener *self, uint8_t *element, size_t elementLength)
-{
-  ((ElementListener *)self)->onReceivedElement(element, elementLength);
-}
-
-}
diff --git a/src/encoding/wire-format.cpp b/src/encoding/wire-format.cpp
deleted file mode 100644
index cff24e5..0000000
--- a/src/encoding/wire-format.cpp
+++ /dev/null
@@ -1,69 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#include <stdexcept>
-#include <ndn-cpp-dev/encoding/wire-format.hpp>
-
-using namespace std;
-
-namespace ndn {
-
-static bool gotInitialDefaultWireFormat = false;
-
-WireFormat* WireFormat::defaultWireFormat_ = 0;
-
-WireFormat*
-WireFormat::getDefaultWireFormat()
-{
-  if (!defaultWireFormat_ && !gotInitialDefaultWireFormat) {
-    // There is no defaultWireFormat_ and we have not yet initialized initialDefaultWireFormat_, so initialize and use it.
-    gotInitialDefaultWireFormat = true;
-    // NOTE: This allocates one object which we never free for the life of the application.
-    defaultWireFormat_ = newInitialDefaultWireFormat();
-  }
-  
-  return defaultWireFormat_;
-}
-
-Blob 
-WireFormat::encodeInterest(const Interest& interest) 
-{
-  throw logic_error("unimplemented");
-}
-
-void 
-WireFormat::decodeInterest(Interest& interest, const uint8_t *input, size_t inputLength) 
-{
-  throw logic_error("unimplemented");
-}
-
-Blob 
-WireFormat::encodeData(const Data& data, size_t *signedPortionBeginOffset, size_t *signedPortionEndOffset) 
-{
-  throw logic_error("unimplemented");
-}
-
-void 
-WireFormat::decodeData
-  (Data& data, const uint8_t *input, size_t inputLength, size_t *signedPortionBeginOffset, size_t *signedPortionEndOffset) 
-{
-  throw logic_error("unimplemented");
-}
-
-Blob 
-WireFormat::encodeForwardingEntry(const ForwardingEntry& forwardingEntry) 
-{
-  throw logic_error("unimplemented");
-}
-
-void 
-WireFormat::decodeForwardingEntry(ForwardingEntry& forwardingEntry, const uint8_t *input, size_t inputLength) 
-{
-  throw logic_error("unimplemented");
-}
-
-}
diff --git a/src/name.cpp b/src/name.cpp
index 7a3d171..484fdc0 100644
--- a/src/name.cpp
+++ b/src/name.cpp
@@ -8,10 +8,9 @@
 
 #include <stdexcept>
 #include <algorithm>
-#include <string.h>
+#include <cstring>
 #include <ndn-cpp-dev/name.hpp>
-#include "c/util/ndn_memory.h"
-#include "c/util/time.h"
+#include "util/time.hpp"
 
 #include "util/string-helper.hpp"
 
@@ -91,7 +90,7 @@
     return 1;
 
   // The components are equal length.  Just do a byte compare.  
-  return ndn_memcmp(getValue().buf(), other.getValue().buf(), getValue().size());
+  return std::memcmp(getValue().buf(), other.getValue().buf(), getValue().size());
 }
 
 // const Block &
diff --git a/src/node.cpp b/src/node.cpp
index fe192cc..fb216ca 100644
--- a/src/node.cpp
+++ b/src/node.cpp
@@ -6,7 +6,7 @@
  */
 
 #include <stdexcept>
-#include "c/util/time.h"
+#include "util/time.hpp"
 
 #include <ndn-cpp-dev/forwarding-entry.hpp>
 #include <ndn-cpp-dev/face-instance.hpp>
diff --git a/src/security/sec-public-info-sqlite3.cpp b/src/security/sec-public-info-sqlite3.cpp
index 8b68ac6..2072091 100644
--- a/src/security/sec-public-info-sqlite3.cpp
+++ b/src/security/sec-public-info-sqlite3.cpp
@@ -17,7 +17,8 @@
 #include <fstream>
 #include <boost/filesystem.hpp>
 #include "../util/logging.hpp"
-#include "../c/util/time.h"
+#include "../util/time.hpp"
+
 #include <ndn-cpp-dev/data.hpp>
 #include <ndn-cpp-dev/security/identity-certificate.hpp>
 #include <ndn-cpp-dev/security/sec-public-info-sqlite3.hpp>
diff --git a/src/transport/tcp-transport.cpp b/src/transport/tcp-transport.cpp
index f75dcd2..2e78cc3 100644
--- a/src/transport/tcp-transport.cpp
+++ b/src/transport/tcp-transport.cpp
@@ -10,7 +10,6 @@
 
 #include <ndn-cpp-dev/face.hpp>
 #include <ndn-cpp-dev/transport/tcp-transport.hpp>
-#include "../c/util/ndn_memory.h"
 
 #include <boost/asio.hpp>
 #if NDN_CPP_HAVE_CXX11
@@ -179,7 +178,8 @@
         if (partialDataSize_ > 0)
           {
             size_t newDataSize = std::min(bytes_recvd, MAX_LENGTH-partialDataSize_);
-            ndn_memcpy(partialData_ + partialDataSize_, inputBuffer_, newDataSize);
+            std::copy(inputBuffer_, inputBuffer_ + newDataSize, partialData_ + partialDataSize_);
+
             partialDataSize_ += newDataSize;
               
             size_t offset = 0;
@@ -194,7 +194,7 @@
                         
                     offset = 0;
                     partialDataSize_ = bytes_recvd - newDataSize;
-                    ndn_memcpy(partialData_, inputBuffer_ + newDataSize, partialDataSize_);
+                    std::copy(inputBuffer_ + newDataSize, inputBuffer_ + newDataSize + partialDataSize_, partialData_);
 
                     processAll(partialData_, offset, partialDataSize_);
 
@@ -212,7 +212,7 @@
                 if (offset > 0)
                   {
                     partialDataSize_ -= offset;
-                    ndn_memcpy(partialData_, partialData_ + offset, partialDataSize_);
+                    std::copy(partialData_ + offset, partialData_ + offset + partialDataSize_, partialData_);
                   }
                 else if (offset == 0 && partialDataSize_ == MAX_LENGTH)
                   {
@@ -235,7 +235,7 @@
                 if (offset > 0)
                   {
                     partialDataSize_ = bytes_recvd - offset;
-                    ndn_memcpy(partialData_, inputBuffer_ + offset, partialDataSize_);
+                    std::copy(inputBuffer_ + offset, inputBuffer_ + offset + partialDataSize_, partialData_);
                   }
               }
           }
diff --git a/src/transport/unix-transport.cpp b/src/transport/unix-transport.cpp
index 954b12c..5d26e15 100644
--- a/src/transport/unix-transport.cpp
+++ b/src/transport/unix-transport.cpp
@@ -10,7 +10,6 @@
 
 #include <ndn-cpp-dev/face.hpp>
 #include <ndn-cpp-dev/transport/unix-transport.hpp>
-#include "../c/util/ndn_memory.h"
 
 #include <boost/asio.hpp>
 #if NDN_CPP_HAVE_CXX11
@@ -148,7 +147,8 @@
         if (partialDataSize_ > 0)
           {
             size_t newDataSize = std::min(bytes_recvd, MAX_LENGTH-partialDataSize_);
-            ndn_memcpy(partialData_ + partialDataSize_, inputBuffer_, newDataSize);
+            std::copy(inputBuffer_, inputBuffer_ + newDataSize, partialData_ + partialDataSize_);
+
             partialDataSize_ += newDataSize;
               
             size_t offset = 0;
@@ -163,7 +163,7 @@
                         
                     offset = 0;
                     partialDataSize_ = bytes_recvd - newDataSize;
-                    ndn_memcpy(partialData_, inputBuffer_ + newDataSize, partialDataSize_);
+                    std::copy(inputBuffer_ + newDataSize, inputBuffer_ + newDataSize + partialDataSize_, partialData_);
 
                     processAll(partialData_, offset, partialDataSize_);
 
@@ -181,7 +181,7 @@
                 if (offset > 0)
                   {
                     partialDataSize_ -= offset;
-                    ndn_memcpy(partialData_, partialData_ + offset, partialDataSize_);
+                    std::copy(partialData_ + offset, partialData_ + offset + partialDataSize_, partialData_);
                   }
                 else if (offset == 0 && partialDataSize_ == MAX_LENGTH)
                   {
@@ -204,7 +204,7 @@
                 if (offset > 0)
                   {
                     partialDataSize_ = bytes_recvd - offset;
-                    ndn_memcpy(partialData_, inputBuffer_ + offset, partialDataSize_);
+                    std::copy(inputBuffer_ + offset, inputBuffer_ + offset + partialDataSize_, partialData_);
                   }
               }
           }
diff --git a/src/util/blob-stream.hpp b/src/util/blob-stream.hpp
deleted file mode 100644
index 3bad4b7..0000000
--- a/src/util/blob-stream.hpp
+++ /dev/null
@@ -1,76 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_BLOB_STREAM_HPP
-#define NDN_BLOB_STREAM_HPP
-
-#include <ndn-cpp-dev/common.hpp>
-
-#if NDN_CPP_USE_SYSTEM_BOOST
-#include <boost/iostreams/detail/ios.hpp>
-#include <boost/iostreams/categories.hpp>
-#include <boost/iostreams/stream.hpp>
-namespace ndnboost = boost;
-#else
-// We can use ndnboost::iostreams because this is internal and will not conflict with the application if it uses boost::iostreams.
-#include <ndnboost/iostreams/detail/ios.hpp>
-#include <ndnboost/iostreams/categories.hpp>
-#include <ndnboost/iostreams/stream.hpp>
-#endif
-
-namespace ndn {
-
-class blob_append_device {
-public:
-  typedef char  char_type;
-  typedef ndnboost::iostreams::sink_tag category;
-  
-  blob_append_device(std::vector<uint8_t>& container)
-  : container_(container)
-  {
-  }
-  
-  std::streamsize
-  write(const char_type* s, std::streamsize n)
-  {
-    std::copy(s, s+n, std::back_inserter(container_));
-    return n;
-  }
-  
-protected:
-  std::vector<uint8_t>& container_;
-};
-
-/**
- * This is called "blob_stream" but it doesn't use an ndn::Blob which is immutable.  It uses a pointer to a vector<uint8_t>.
- * This is inteded for internal library use, not exported in the API.
- */
-struct blob_stream : public ndnboost::iostreams::stream<blob_append_device>
-{
-  blob_stream()
-    : buffer_(new std::vector<uint8_t>())
-    , device_(*buffer_)
-  {
-    open(device_);
-  }
-
-  ptr_lib::shared_ptr<std::vector<uint8_t> >
-  buf()
-  {
-    flush();
-    return buffer_;
-  }
-
-private:
-  ptr_lib::shared_ptr<std::vector<uint8_t> > buffer_;
-  blob_append_device device_;
-};
-
-}
-
-#endif
diff --git a/src/util/blob.cpp b/src/util/blob.cpp
deleted file mode 100644
index 46297c6..0000000
--- a/src/util/blob.cpp
+++ /dev/null
@@ -1,30 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#include "../c/util/blob.h"
-#include <ndn-cpp-dev/util/blob.hpp>
-
-using namespace std;
-
-namespace ndn {
-
-Blob::Blob(const struct ndn_Blob& blobStruct)
-  : ptr_lib::shared_ptr<const vector<uint8_t> >(new vector<uint8_t>(blobStruct.value, blobStruct.value + blobStruct.length))
-{
-}
-
-void 
-Blob::get(struct ndn_Blob& blobStruct) const 
-{
-  blobStruct.length = size(); 
-  if (size() > 0)
-    blobStruct.value = (uint8_t*)buf();
-  else
-    blobStruct.value = 0;
-}
-
-}
diff --git a/src/util/changed-event.cpp b/src/util/changed-event.cpp
deleted file mode 100644
index 08dcb98..0000000
--- a/src/util/changed-event.cpp
+++ /dev/null
@@ -1,21 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#include "changed-event.hpp"
-
-using namespace std;
-
-namespace ndn {
-
-void 
-ChangedEvent::fire()
-{
-  for (size_t i = 0; i < listeners_.size(); ++i)
-    listeners_[i]();
-}
-
-}
diff --git a/src/util/changed-event.hpp b/src/util/changed-event.hpp
deleted file mode 100644
index aee8549..0000000
--- a/src/util/changed-event.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_CHANGED_EVENT_HPP
-#define NDN_CHANGED_EVENT_HPP
-
-#include <vector>
-#include <ndn-cpp-dev/common.hpp>
-
-namespace ndn {
-
-/**
- * An OnChanged function object is called to notify a listener of a changed event.
- */
-typedef func_lib::function<void()> OnChanged;
-
-class ChangedEvent {
-public:
-  /**
-   * Add onChanged to the listener list. This does not check if a duplicate is already in the list.
-   * @param onChanged The OnChanged function object.
-   */
-  void 
-  add(OnChanged onChanged)
-  {
-    listeners_.push_back(onChanged);
-  }
-  
-  /**
-   * Call all the listeners.
-   */
-  void 
-  fire();
-
-#if 0  
-private:
-#endif
-  std::vector<OnChanged> listeners_;
-};
-
-}
-
-#endif
diff --git a/src/util/crypto.cpp b/src/util/crypto.cpp
new file mode 100644
index 0000000..ce17259
--- /dev/null
+++ b/src/util/crypto.cpp
@@ -0,0 +1,19 @@
+/**
+ * Copyright (C) 2013 Regents of the University of California.
+ * @author: Jeff Thompson <jefft0@remap.ucla.edu>
+ * See COPYING for copyright and distribution information.
+ */
+
+#include "ndn-cpp-dev/util/crypto.hpp"
+
+namespace ndn {
+
+void ndn_digestSha256(const uint8_t *data, size_t dataLength, uint8_t *digest)
+{
+  SHA256_CTX sha256;
+  SHA256_Init(&sha256);
+  SHA256_Update(&sha256, data, dataLength);
+  SHA256_Final(digest, &sha256);
+}
+
+} // namespace ndn
diff --git a/src/util/dynamic-uint8-vector.cpp b/src/util/dynamic-uint8-vector.cpp
deleted file mode 100644
index 197fc0e..0000000
--- a/src/util/dynamic-uint8-vector.cpp
+++ /dev/null
@@ -1,34 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#include "dynamic-uint8-vector.hpp"
-
-using namespace std;
-
-namespace ndn {
-
-DynamicUInt8Vector::DynamicUInt8Vector(size_t initialLength)
-: vector_(new vector<uint8_t>(initialLength))
-{
-  ndn_DynamicUInt8Array_initialize(this, &vector_->front(), initialLength, DynamicUInt8Vector::realloc);
-}
-
-uint8_t*
-DynamicUInt8Vector::realloc(struct ndn_DynamicUInt8Array *self, uint8_t *array, size_t length)
-{
-  // Because this method is private, assume there is not a problem with upcasting.
-  DynamicUInt8Vector *thisObject = (DynamicUInt8Vector *)self;
-  
-  if (array != &thisObject->vector_->front())
-    // We don't expect this to ever happen. The caller didn't pass the array from this object.
-    return 0;
-  
-  thisObject->vector_->resize(length);
-  return &thisObject->vector_->front();
-}
-
-}
diff --git a/src/util/dynamic-uint8-vector.hpp b/src/util/dynamic-uint8-vector.hpp
deleted file mode 100644
index 55ed1ee..0000000
--- a/src/util/dynamic-uint8-vector.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#ifndef NDN_DYNAMIC_UCHAR_VECTOR_HPP
-#define NDN_DYNAMIC_UCHAR_VECTOR_HPP
-
-#include <vector>
-#include <ndn-cpp-dev/common.hpp>
-#include "../c/util/dynamic-uint8-array.h"
-
-namespace ndn {
-
-/**
- * A DynamicUInt8Vector extends ndn_DynamicUInt8Array to hold a shared_ptr<vector<uint8_t> > for use with
- * C functions which need an ndn_DynamicUInt8Array.
- */
-class DynamicUInt8Vector : public ndn_DynamicUInt8Array {
-public:
-  /**
-   * Create a new DynamicUInt8Vector with an initial length.
-   * @param initialLength The initial size of the allocated vector.
-   */
-  DynamicUInt8Vector(size_t initialLength);
-  
-  /**
-   * Get the shared_ptr to the allocated vector.
-   * @return The shared_ptr to the allocated vector. 
-   */
-  ptr_lib::shared_ptr<std::vector<uint8_t> >& 
-  get() { return vector_; }
-  
-private:
-  /**
-   * Implement the static realloc function using vector resize.
-   * @param self A pointer to this object.
-   * @param array Should be the front of the vector.
-   * @param length The new length for the vector.
-   * @return The front of the allocated vector.
-   */
-  static uint8_t*
-  realloc(struct ndn_DynamicUInt8Array *self, uint8_t *array, size_t length);
-  
-  ptr_lib::shared_ptr<std::vector<uint8_t> > vector_;
-};
-
-}
-
-#endif
diff --git a/src/util/logging.hpp b/src/util/logging.hpp
index 73c6d12..e9bf4d5 100644
--- a/src/util/logging.hpp
+++ b/src/util/logging.hpp
@@ -64,11 +64,10 @@
 
 #ifdef _DEBUG
 
-#include <sys/time.h>
 #include <iostream>
 
 #define _LOG_DEBUG(x) \
-  { time_t now = time(0); std::string s = std::string(ctime(&now)); std::clog << s.substr(0, s.size() - 1) << " " << x << std::endl; }
+  { std::clog << s.substr(0, s.size() - 1) << " " << x << std::endl; }
 
 #else
 #define _LOG_DEBUG(x)
diff --git a/src/util/ndnd-id-fetcher.hpp b/src/util/ndnd-id-fetcher.hpp
index 6a1224e..e10eb38 100644
--- a/src/util/ndnd-id-fetcher.hpp
+++ b/src/util/ndnd-id-fetcher.hpp
@@ -9,7 +9,7 @@
 #define NDN_NDND_ID_FETCHER_HPP
 
 #include <ndn-cpp-dev/common.hpp>
-#include "ndn-cpp-dev/c/util/crypto.h"
+#include "ndn-cpp-dev/util/crypto.hpp"
 
 namespace ndn {
 
diff --git a/src/util/time.hpp b/src/util/time.hpp
index 90482d9..7b42b4a 100644
--- a/src/util/time.hpp
+++ b/src/util/time.hpp
@@ -8,11 +8,30 @@
 #ifndef NDN_TIME_HPP
 #define NDN_TIME_HPP
 
-#include <stdexcept>
-#include "../c/util/time.h"
+#include "ndn-cpp-dev/common.hpp"
+#include <boost/date_time/posix_time/posix_time.hpp>
 
 namespace ndn {
 
+const boost::posix_time::ptime UNIX_EPOCH_TIME =
+  boost::posix_time::ptime (boost::gregorian::date (1970, boost::gregorian::Jan, 1));
+
+/**
+ * @brief Get the current time in milliseconds since 1/1/1970, including fractions of a millisecond
+ */
+inline MillisecondsSince1970 
+getNowMilliseconds()
+{
+  return (boost::posix_time::microsec_clock::universal_time() - UNIX_EPOCH_TIME).total_milliseconds();
+}
+
+inline MillisecondsSince1970 
+ndn_getNowMilliseconds()
+{
+  return getNowMilliseconds();
+}
+
+
 /**
  * Convert to the ISO string representation of the time.
  * @param time Milliseconds since 1/1/1970.
@@ -21,12 +40,13 @@
 inline std::string
 toIsoString(const MillisecondsSince1970& time)
 {
-  char isoString[25];
-  ndn_Error error;
-  if ((error = ndn_toIsoString(time, isoString)))
-    throw std::runtime_error(ndn_getErrorString(error));
-  
-  return isoString;
+  boost::posix_time::ptime boostTime = UNIX_EPOCH_TIME + boost::posix_time::milliseconds(time);
+
+  /// @todo Determine whether this is necessary at all
+  if ((time % 1000) == 0)
+    return boost::posix_time::to_iso_string(boostTime) + ".000000"; 
+  else
+    return boost::posix_time::to_iso_string(boostTime);
 }
   
 /**
@@ -37,12 +57,9 @@
 inline MillisecondsSince1970
 fromIsoString(const std::string& isoString)
 {
-  MillisecondsSince1970 milliseconds;
-  ndn_Error error;
-  if ((error = ndn_fromIsoString(isoString.c_str(), &milliseconds)))
-    throw std::runtime_error(ndn_getErrorString(error));
+  boost::posix_time::ptime boostTime = boost::posix_time::from_iso_string(isoString);
   
-  return milliseconds;
+  return (boostTime-UNIX_EPOCH_TIME).total_milliseconds();
 }
 
 } // namespace ndn
diff --git a/tests/Makefile.am b/tests/Makefile.am
deleted file mode 100644
index ae99ab5..0000000
--- a/tests/Makefile.am
+++ /dev/null
@@ -1,13 +0,0 @@
-
-LDADD = ../libndn-cpp-dev.la @BOOST_SYSTEM_LIB@
-
-noinst_PROGRAMS = \
-	test-get-async \
-	test-publish-async \
-	test-encode-decode-benchmark
-
-test_encode_decode_benchmark_SOURCES = test-encode-decode-benchmark.cpp
-
-test_get_async_SOURCES = test-get-async.cpp
-
-test_publish_async_SOURCES = test-publish-async.cpp
diff --git a/tests_boost/main.cpp b/tests/main.cpp
similarity index 100%
rename from tests_boost/main.cpp
rename to tests/main.cpp
diff --git a/tests/test-encode-decode-benchmark.cpp b/tests/test-encode-decode-benchmark.cpp
deleted file mode 100644
index bb678f0..0000000
--- a/tests/test-encode-decode-benchmark.cpp
+++ /dev/null
@@ -1,481 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#include <iostream>
-#include <time.h>
-#include <sys/time.h>
-#include <sstream>
-#include <stdexcept>
-#include <ndn-cpp-dev/data.hpp>
-#include <ndn-cpp-dev/security/key-chain.hpp>
-// #include <ndn-cpp-dev/security/policy/self-verify-policy-manager.hpp>
-
-// Hack: Hook directly into non-API functions.
-#include "../src/c/encoding/binary-xml-decoder.h"
-#include "../src/c/data.h"
-#include "../src/c/encoding/binary-xml-data.h"
-#include <ndn-cpp-dev/c/util/crypto.h>
-
-using namespace std;
-using namespace ndn;
-
-static double
-getNowSeconds()
-{
-  struct timeval t;
-  gettimeofday(&t, 0);
-  return t.tv_sec + t.tv_usec / 1000000.0;
-}
-
-static bool
-verifyRsaSignature
-  (uint8_t* signedPortion, size_t signedPortionLength, uint8_t* signatureBits, size_t signatureBitsLength, 
-   uint8_t* publicKeyDer, size_t publicKeyDerLength)
-{
-  // Set signedPortionDigest to the digest of the signed portion of the wire encoding.
-  uint8_t signedPortionDigest[SHA256_DIGEST_LENGTH];
-  ndn_digestSha256(signedPortion, signedPortionLength, signedPortionDigest);
-  
-  // Verify the signedPortionDigest.
-  // Use a temporary pointer since d2i updates it.
-  const uint8_t *derPointer = publicKeyDer;
-  RSA *rsaPublicKey = d2i_RSA_PUBKEY(NULL, &derPointer, publicKeyDerLength);
-  if (!rsaPublicKey) {
-    // Don't expect this to happen.
-    cout << "Error decoding public key in d2i_RSAPublicKey" << endl;
-    return 0;
-  }
-  int success = RSA_verify
-    (NID_sha256, signedPortionDigest, sizeof(signedPortionDigest), signatureBits, signatureBitsLength, rsaPublicKey);
-  // Free the public key before checking for success.
-  RSA_free(rsaPublicKey);
-  
-  // RSA_verify returns 1 for a valid signature.
-  return (success == 1);
-}
-
-static uint8_t DEFAULT_PUBLIC_KEY_DER[] = {
-0x30, 0x81, 0x9F, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x81,
-0x8D, 0x00, 0x30, 0x81, 0x89, 0x02, 0x81, 0x81, 0x00, 0xE1, 0x7D, 0x30, 0xA7, 0xD8, 0x28, 0xAB, 0x1B, 0x84, 0x0B, 0x17,
-0x54, 0x2D, 0xCA, 0xF6, 0x20, 0x7A, 0xFD, 0x22, 0x1E, 0x08, 0x6B, 0x2A, 0x60, 0xD1, 0x6C, 0xB7, 0xF5, 0x44, 0x48, 0xBA,
-0x9F, 0x3F, 0x08, 0xBC, 0xD0, 0x99, 0xDB, 0x21, 0xDD, 0x16, 0x2A, 0x77, 0x9E, 0x61, 0xAA, 0x89, 0xEE, 0xE5, 0x54, 0xD3,
-0xA4, 0x7D, 0xE2, 0x30, 0xBC, 0x7A, 0xC5, 0x90, 0xD5, 0x24, 0x06, 0x7C, 0x38, 0x98, 0xBB, 0xA6, 0xF5, 0xDC, 0x43, 0x60,
-0xB8, 0x45, 0xED, 0xA4, 0x8C, 0xBD, 0x9C, 0xF1, 0x26, 0xA7, 0x23, 0x44, 0x5F, 0x0E, 0x19, 0x52, 0xD7, 0x32, 0x5A, 0x75,
-0xFA, 0xF5, 0x56, 0x14, 0x4F, 0x9A, 0x98, 0xAF, 0x71, 0x86, 0xB0, 0x27, 0x86, 0x85, 0xB8, 0xE2, 0xC0, 0x8B, 0xEA, 0x87,
-0x17, 0x1B, 0x4D, 0xEE, 0x58, 0x5C, 0x18, 0x28, 0x29, 0x5B, 0x53, 0x95, 0xEB, 0x4A, 0x17, 0x77, 0x9F, 0x02, 0x03, 0x01,
-0x00, 0x01  
-};
-
-static uint8_t DEFAULT_PRIVATE_KEY_DER[] = {
-0x30, 0x82, 0x02, 0x5d, 0x02, 0x01, 0x00, 0x02, 0x81, 0x81, 0x00, 0xe1, 0x7d, 0x30, 0xa7, 0xd8, 0x28, 0xab, 0x1b, 0x84,
-0x0b, 0x17, 0x54, 0x2d, 0xca, 0xf6, 0x20, 0x7a, 0xfd, 0x22, 0x1e, 0x08, 0x6b, 0x2a, 0x60, 0xd1, 0x6c, 0xb7, 0xf5, 0x44,
-0x48, 0xba, 0x9f, 0x3f, 0x08, 0xbc, 0xd0, 0x99, 0xdb, 0x21, 0xdd, 0x16, 0x2a, 0x77, 0x9e, 0x61, 0xaa, 0x89, 0xee, 0xe5,
-0x54, 0xd3, 0xa4, 0x7d, 0xe2, 0x30, 0xbc, 0x7a, 0xc5, 0x90, 0xd5, 0x24, 0x06, 0x7c, 0x38, 0x98, 0xbb, 0xa6, 0xf5, 0xdc,
-0x43, 0x60, 0xb8, 0x45, 0xed, 0xa4, 0x8c, 0xbd, 0x9c, 0xf1, 0x26, 0xa7, 0x23, 0x44, 0x5f, 0x0e, 0x19, 0x52, 0xd7, 0x32,
-0x5a, 0x75, 0xfa, 0xf5, 0x56, 0x14, 0x4f, 0x9a, 0x98, 0xaf, 0x71, 0x86, 0xb0, 0x27, 0x86, 0x85, 0xb8, 0xe2, 0xc0, 0x8b,
-0xea, 0x87, 0x17, 0x1b, 0x4d, 0xee, 0x58, 0x5c, 0x18, 0x28, 0x29, 0x5b, 0x53, 0x95, 0xeb, 0x4a, 0x17, 0x77, 0x9f, 0x02,
-0x03, 0x01, 0x00, 0x01, 0x02, 0x81, 0x80, 0x1a, 0x4b, 0xfa, 0x4f, 0xa8, 0xc2, 0xdd, 0x69, 0xa1, 0x15, 0x96, 0x0b, 0xe8,
-0x27, 0x42, 0x5a, 0xf9, 0x5c, 0xea, 0x0c, 0xac, 0x98, 0xaa, 0xe1, 0x8d, 0xaa, 0xeb, 0x2d, 0x3c, 0x60, 0x6a, 0xfb, 0x45,
-0x63, 0xa4, 0x79, 0x83, 0x67, 0xed, 0xe4, 0x15, 0xc0, 0xb0, 0x20, 0x95, 0x6d, 0x49, 0x16, 0xc6, 0x42, 0x05, 0x48, 0xaa,
-0xb1, 0xa5, 0x53, 0x65, 0xd2, 0x02, 0x99, 0x08, 0xd1, 0x84, 0xcc, 0xf0, 0xcd, 0xea, 0x61, 0xc9, 0x39, 0x02, 0x3f, 0x87,
-0x4a, 0xe5, 0xc4, 0xd2, 0x07, 0x02, 0xe1, 0x9f, 0xa0, 0x06, 0xc2, 0xcc, 0x02, 0xe7, 0xaa, 0x6c, 0x99, 0x8a, 0xf8, 0x49,
-0x00, 0xf1, 0xa2, 0x8c, 0x0c, 0x8a, 0xb9, 0x4f, 0x6d, 0x73, 0x3b, 0x2c, 0xb7, 0x9f, 0x8a, 0xa6, 0x7f, 0x9b, 0x9f, 0xb7,
-0xa1, 0xcc, 0x74, 0x2e, 0x8f, 0xb8, 0xb0, 0x26, 0x89, 0xd2, 0xe5, 0x66, 0xe8, 0x8e, 0xa1, 0x02, 0x41, 0x00, 0xfc, 0xe7,
-0x52, 0xbc, 0x4e, 0x95, 0xb6, 0x1a, 0xb4, 0x62, 0xcc, 0xd8, 0x06, 0xe1, 0xdc, 0x7a, 0xa2, 0xb6, 0x71, 0x01, 0xaa, 0x27,
-0xfc, 0x99, 0xe5, 0xf2, 0x54, 0xbb, 0xb2, 0x85, 0xe1, 0x96, 0x54, 0x2d, 0xcb, 0xba, 0x86, 0xfa, 0x80, 0xdf, 0xcf, 0x39,
-0xe6, 0x74, 0xcb, 0x22, 0xce, 0x70, 0xaa, 0x10, 0x00, 0x73, 0x1d, 0x45, 0x0a, 0x39, 0x51, 0x84, 0xf5, 0x15, 0x8f, 0x37,
-0x76, 0x91, 0x02, 0x41, 0x00, 0xe4, 0x3f, 0xf0, 0xf4, 0xde, 0x79, 0x77, 0x48, 0x9b, 0x9c, 0x28, 0x45, 0x26, 0x57, 0x3c,
-0x71, 0x40, 0x28, 0x6a, 0xa1, 0xfe, 0xc3, 0xe5, 0x37, 0xa1, 0x03, 0xf6, 0x2d, 0xbe, 0x80, 0x64, 0x72, 0x69, 0x2e, 0x9b,
-0x4d, 0xe3, 0x2e, 0x1b, 0xfe, 0xe7, 0xf9, 0x77, 0x8c, 0x18, 0x53, 0x9f, 0xe2, 0xfe, 0x00, 0xbb, 0x49, 0x20, 0x47, 0xdf,
-0x01, 0x61, 0x87, 0xd6, 0xe3, 0x44, 0xb5, 0x03, 0x2f, 0x02, 0x40, 0x54, 0xec, 0x7c, 0xbc, 0xdd, 0x0a, 0xaa, 0xde, 0xe6,
-0xc9, 0xf2, 0x8d, 0x6c, 0x2a, 0x35, 0xf6, 0x3c, 0x63, 0x55, 0x29, 0x40, 0xf1, 0x32, 0x82, 0x9f, 0x53, 0xb3, 0x9e, 0x5f,
-0xc1, 0x53, 0x52, 0x3e, 0xac, 0x2e, 0x28, 0x51, 0xa1, 0x16, 0xdb, 0x90, 0xe3, 0x99, 0x7e, 0x88, 0xa4, 0x04, 0x7c, 0x92,
-0xae, 0xd2, 0xe7, 0xd4, 0xe1, 0x55, 0x20, 0x90, 0x3e, 0x3c, 0x6a, 0x63, 0xf0, 0x34, 0xf1, 0x02, 0x41, 0x00, 0x84, 0x5a,
-0x17, 0x6c, 0xc6, 0x3c, 0x84, 0xd0, 0x93, 0x7a, 0xff, 0x56, 0xe9, 0x9e, 0x98, 0x2b, 0xcb, 0x5a, 0x24, 0x4a, 0xff, 0x21,
-0xb4, 0x9e, 0x87, 0x3d, 0x76, 0xd8, 0x9b, 0xa8, 0x73, 0x96, 0x6c, 0x2b, 0x5c, 0x5e, 0xd3, 0xa6, 0xff, 0x10, 0xd6, 0x8e,
-0xaf, 0xa5, 0x8a, 0xcd, 0xa2, 0xde, 0xcb, 0x0e, 0xbd, 0x8a, 0xef, 0xae, 0xfd, 0x3f, 0x1d, 0xc0, 0xd8, 0xf8, 0x3b, 0xf5,
-0x02, 0x7d, 0x02, 0x41, 0x00, 0x8b, 0x26, 0xd3, 0x2c, 0x7d, 0x28, 0x38, 0x92, 0xf1, 0xbf, 0x15, 0x16, 0x39, 0x50, 0xc8,
-0x6d, 0x32, 0xec, 0x28, 0xf2, 0x8b, 0xd8, 0x70, 0xc5, 0xed, 0xe1, 0x7b, 0xff, 0x2d, 0x66, 0x8c, 0x86, 0x77, 0x43, 0xeb,
-0xb6, 0xf6, 0x50, 0x66, 0xb0, 0x40, 0x24, 0x6a, 0xaf, 0x98, 0x21, 0x45, 0x30, 0x01, 0x59, 0xd0, 0xc3, 0xfc, 0x7b, 0xae,
-0x30, 0x18, 0xeb, 0x90, 0xfb, 0x17, 0xd3, 0xce, 0xb5
-};
-
-/**
- * Loop to encode a data packet nIterations times using C++.
- * @param nIterations The number of iterations.
- * @param useComplex If true, use a large name, large content and all fields.  If false, use a small name, small content
- * and only required fields.
- * @param useCrypto If true, sign the data packet.  If false, use a blank signature.
- * @param encoding Set this to the wire encoding.
- * @return The number of seconds for all iterations.
- */
-static double
-benchmarkEncodeDataSecondsCpp(int nIterations, bool useComplex, bool useCrypto, Block& encoding)
-{
-  Name name;
-  Block content;
-  if (useComplex) {
-    // Use a large name and content.
-    name = Name("/ndn/ucla.edu/apps/lwndn-test/numbers.txt/%FD%05%05%E8%0C%CE%1D/%00"); 
-    
-    ostringstream contentStream;
-    int count = 1;
-    contentStream << (count++);
-    while (contentStream.str().length() < 1170)
-      contentStream << " " << (count++);
-    content = dataBlock(Tlv::Content, contentStream.str().c_str(), contentStream.str().length());
-  }
-  else {
-    // Use a small name and content.
-    name = Name("/test");
-    content = dataBlock(Tlv::Content, "abc", 3);
-  }
-  std::cout << "Content size: " << content.value_size() << std::endl;
-  
-  // Initialize the KeyChain storage in case useCrypto is true.
-  KeyChainImpl<SecPublicInfoMemory, SecTpmMemory> keyChain;
-
-  Name keyName("/testname/dsk-123");
-
-  // Initialize the storage.
-  keyChain.addPublicKey(keyName, KEY_TYPE_RSA,
-                        PublicKey(DEFAULT_PUBLIC_KEY_DER, sizeof(DEFAULT_PUBLIC_KEY_DER)));
-
-  keyChain.setKeyPairForKeyName(keyName,
-                                DEFAULT_PUBLIC_KEY_DER, sizeof(DEFAULT_PUBLIC_KEY_DER),
-                                DEFAULT_PRIVATE_KEY_DER, sizeof(DEFAULT_PRIVATE_KEY_DER));
-
-  keyChain.addCertificateAsKeyDefault(*keyChain.selfSign(keyName));
-  Name certificateName = keyChain.getDefaultCertificateName();
-  
-  // Set up publisherPublicKeyDigest and signatureBits in case useCrypto is false.
-  uint8_t signatureBitsArray[128];
-  memset(signatureBitsArray, 0, sizeof(signatureBitsArray));
-  Block signatureValue = dataBlock(Tlv::SignatureValue, signatureBitsArray, sizeof(signatureBitsArray));
-
-  double start = getNowSeconds();
-  for (int i = 0; i < nIterations; ++i) {
-    Data data(name);
-    data.setContent(content);
-    if (useComplex) {
-      data.setFreshnessPeriod(1000000);
-    }
-
-    if (useCrypto)
-      // This sets the signature fields.
-      keyChain.sign(data);
-    else {
-      // Imitate real sign method to set up the signature fields, but don't actually sign.
-      SignatureSha256WithRsa signature;
-      signature.setKeyLocator(certificateName);
-      signature.setValue(signatureValue);
-      data.setSignature(signature);
-    }
-
-    encoding = data.wireEncode();
-  }
-  double finish = getNowSeconds();
-    
-  return finish - start;
-}
-
-static void 
-onVerified(const ptr_lib::shared_ptr<Data>& data)
-{
-  // Do nothing since we expect it to verify.
-}
-
-static void 
-onVerifyFailed(const ptr_lib::shared_ptr<Data>& data)
-{
-  cout << "Signature verification: FAILED" << endl;
-}
-
-/**
- * Loop to decode a data packet nIterations times using C++.
- * @param nIterations The number of iterations.
- * @param useCrypto If true, verify the signature.  If false, don't verify.
- * @param encoding The wire encoding to decode.
- * @return The number of seconds for all iterations.
- */
-static double 
-benchmarkDecodeDataSecondsCpp(int nIterations, bool useCrypto, const ConstBufferPtr &encoding)
-{
-  // // Initialize the KeyChain storage in case useCrypto is true.
-  // ptr_lib::shared_ptr<MemoryIdentityStorage> identityStorage(new MemoryIdentityStorage());
-  // identityStorage->addKey(keyName, KEY_TYPE_RSA, Blob(DEFAULT_PUBLIC_KEY_DER, sizeof(DEFAULT_PUBLIC_KEY_DER)));
-  
-  // ptr_lib::shared_ptr<MemoryPrivateKeyStorage> privateKeyStorage(new MemoryPrivateKeyStorage());
-  // KeyChain keyChain(identityStorage, privateKeyStorage);
-  
-  // Name keyName("/testname/DSK-123");
-
-  size_t nameSize = 0;
-  double start = getNowSeconds();
-  for (int i = 0; i < nIterations; ++i) {
-    Data data;
-    data.wireDecode(encoding);
-    
-  //   if (useCrypto)
-  //     keyChain.verifyData(data, onVerified, onVerifyFailed);
-  }
-  double finish = getNowSeconds();
- 
-  return finish - start;
-}
-
-/**
- * Loop to encode a data packet nIterations times using C.
- * @param nIterations The number of iterations.
- * @param useComplex If true, use a large name, large content and all fields.  If false, use a small name, small content
- * and only required fields.
- * @param useCrypto If true, sign the data packet.  If false, use a blank signature.
- * @param encoding Output buffer for the wire encoding.
- * @param maxEncodingLength The size of the encoding buffer.
- * @param encodingLength Return the number of output bytes in encoding.
- * @return The number of seconds for all iterations.
- */
-static double 
-benchmarkEncodeDataSecondsC
-  (int nIterations, bool useComplex, bool useCrypto, uint8_t* encoding, size_t maxEncodingLength, size_t *encodingLength)
-{
-  struct ndn_Blob finalBlockId;
-  ndn_Blob_initialize(&finalBlockId, (uint8_t*)"\x00", 1);
-
-  struct ndn_NameComponent nameComponents[20];
-  struct ndn_Name name;
-  ndn_Name_initialize(&name, nameComponents, sizeof(nameComponents) / sizeof(nameComponents[0]));
-  Buffer contentBlob;
-  struct ndn_Blob content;
-  if (useComplex) {
-    // Use a large name and content.
-    ndn_Name_appendString(&name, (char*)"ndn");
-    ndn_Name_appendString(&name, (char*)"ucla.edu");
-    ndn_Name_appendString(&name, (char*)"apps");
-    ndn_Name_appendString(&name, (char*)"lwndn-test");
-    ndn_Name_appendString(&name, (char*)"numbers.txt");
-    ndn_Name_appendString(&name, (char*)"\xFD\x05\x05\xE8\x0C\xCE\x1D");
-    ndn_Name_appendBlob(&name, &finalBlockId);
-    
-    ostringstream contentStream;
-    int count = 1;
-    contentStream << (count++);
-    while (contentStream.str().length() < 1170)
-      contentStream << " " << (count++);
-    contentBlob = Buffer((uint8_t*)contentStream.str().c_str(), contentStream.str().length());
-  }
-  else {
-    // Use a small name and content.
-    ndn_Name_appendString(&name, (char*)"test");
-    contentBlob = Buffer((uint8_t*)"abc", 3);
-  }
-  ndn_Blob_initialize(&content, (uint8_t*)contentBlob.buf(), contentBlob.size());
-  
-  struct ndn_NameComponent certificateNameComponents[20];
-  struct ndn_Name certificateName;
-  ndn_Name_initialize(&certificateName, certificateNameComponents, sizeof(certificateNameComponents) / sizeof(certificateNameComponents[0]));
-  ndn_Name_appendString(&certificateName, (char*)"testname");
-  ndn_Name_appendString(&certificateName, (char*)"KEY");
-  ndn_Name_appendString(&certificateName, (char*)"DSK-123");
-  ndn_Name_appendString(&certificateName, (char*)"ID-CERT");
-  ndn_Name_appendString(&certificateName, (char*)"0");
-  
-  // Set up publisherPublicKeyDigest and signatureBits in case useCrypto is false.
-  uint8_t* publicKeyDer = DEFAULT_PUBLIC_KEY_DER;
-  size_t publicKeyDerLength = sizeof(DEFAULT_PUBLIC_KEY_DER);
-  uint8_t publisherPublicKeyDigestArray[SHA256_DIGEST_LENGTH];
-  ndn_digestSha256(publicKeyDer, publicKeyDerLength, publisherPublicKeyDigestArray);
-  struct ndn_Blob publisherPublicKeyDigest;
-  ndn_Blob_initialize(&publisherPublicKeyDigest, publisherPublicKeyDigestArray, sizeof(publisherPublicKeyDigestArray));
-  uint8_t signatureBitsArray[128];
-  memset(signatureBitsArray, 0, sizeof(signatureBitsArray));
-  
-  // Set up the private key now in case useCrypto is true.
-  // Use a temporary pointer since d2i updates it.
-  const uint8_t *privateKeyDerPointer = DEFAULT_PRIVATE_KEY_DER;
-  RSA *privateKey = d2i_RSAPrivateKey(NULL, &privateKeyDerPointer, sizeof(DEFAULT_PRIVATE_KEY_DER));
-  if (!privateKey) {
-    // Don't expect this to happen.
-    cout << "Error decoding private key DER" << endl;
-    return 0;
-  }
-  
-  double start = getNowSeconds();
-  for (int i = 0; i < nIterations; ++i) {
-    struct ndn_Data data;
-    ndn_Data_initialize(&data, name.components, name.maxComponents, certificateName.components, certificateName.maxComponents);
-    
-    data.name = name;
-    data.content = content;
-    if (useComplex) {
-      data.metaInfo.timestampMilliseconds = 1.3e+12;
-      data.metaInfo.freshnessSeconds = 1000;
-      ndn_NameComponent_initialize(&data.metaInfo.finalBlockID, finalBlockId.value, finalBlockId.length);
-    }
-
-    struct ndn_DynamicUInt8Array output;
-    struct ndn_BinaryXmlEncoder encoder;
-    size_t signedPortionBeginOffset, signedPortionEndOffset;
-    ndn_Error error;
-
-    data.signature.keyLocator.type = ndn_KeyLocatorType_KEYNAME;
-    data.signature.keyLocator.keyName = certificateName;
-    data.signature.keyLocator.keyNameType = (ndn_KeyNameType)-1;
-    data.signature.publisherPublicKeyDigest.publisherPublicKeyDigest = publisherPublicKeyDigest;
-    if (useCrypto) {
-      // Encode once to get the signed portion.
-      ndn_DynamicUInt8Array_initialize(&output, encoding, maxEncodingLength, 0);
-      ndn_BinaryXmlEncoder_initialize(&encoder, &output);    
-      if ((error = ndn_encodeBinaryXmlData(&data, &signedPortionBeginOffset, &signedPortionEndOffset, &encoder))) {
-        cout << "Error in ndn_encodeBinaryXmlData: " << ndn_getErrorString(error) << endl;
-        return 0;
-      }
-      
-      // Imitate MemoryPrivateKeyStorage::sign.
-      uint8_t digest[SHA256_DIGEST_LENGTH];
-      ndn_digestSha256(encoding + signedPortionBeginOffset, signedPortionEndOffset - signedPortionBeginOffset, digest);
-      unsigned int signatureBitsLength;
-      if (!RSA_sign(NID_sha256, digest, sizeof(digest), signatureBitsArray, &signatureBitsLength, privateKey)) {
-        // Don't expect this to happen.
-        cout << "Error in RSA_sign" << endl;
-        return 0;
-      }    
-      
-      ndn_Blob_initialize(&data.signature.signature, signatureBitsArray, signatureBitsLength);
-    }
-    else
-      // Set up the signature, but don't sign.
-      ndn_Blob_initialize(&data.signature.signature, signatureBitsArray, sizeof(signatureBitsArray));
-
-    // Assume the encoding buffer is big enough so we don't need to dynamically reallocate.
-    ndn_DynamicUInt8Array_initialize(&output, encoding, maxEncodingLength, 0);
-    ndn_BinaryXmlEncoder_initialize(&encoder, &output);    
-    if ((error = ndn_encodeBinaryXmlData(&data, &signedPortionBeginOffset, &signedPortionEndOffset, &encoder))) {
-      cout << "Error in ndn_encodeBinaryXmlData: " << ndn_getErrorString(error) << endl;
-      return 0;
-    }    
-    *encodingLength = encoder.offset;
-  }
-  double finish = getNowSeconds();
-  
-  if (privateKey)
-    RSA_free(privateKey);
-  
-  return finish - start;
-}
-
-/**
- * Loop to decode a data packet nIterations times using C.
- * @param nIterations The number of iterations.
- * @param useCrypto If true, verify the signature.  If false, don't verify.
- * @param encoding The buffer with wire encoding to decode.
- * @param encodingLength The number of bytes in the encoding.
- * @return The number of seconds for all iterations.
- */
-static double 
-benchmarkDecodeDataSecondsC(int nIterations, bool useCrypto, uint8_t* encoding, size_t encodingLength)
-{
-  double start = getNowSeconds();
-  for (int i = 0; i < nIterations; ++i) {
-    struct ndn_NameComponent nameComponents[100];
-    struct ndn_NameComponent keyNameComponents[100];
-    struct ndn_Data data;
-    ndn_Data_initialize
-      (&data, nameComponents, sizeof(nameComponents) / sizeof(nameComponents[0]), 
-       keyNameComponents, sizeof(keyNameComponents) / sizeof(keyNameComponents[0]));
-
-    ndn_BinaryXmlDecoder decoder;
-    ndn_BinaryXmlDecoder_initialize(&decoder, encoding, encodingLength);  
-    size_t signedPortionBeginOffset, signedPortionEndOffset;
-    ndn_Error error;
-    if ((error = ndn_decodeBinaryXmlData(&data, &signedPortionBeginOffset, &signedPortionEndOffset, &decoder))) {
-      cout << "Error in ndn_decodeBinaryXmlData: " << ndn_getErrorString(error) << endl;
-      return 0;
-    }
-    
-    if (useCrypto) {
-      if (!verifyRsaSignature
-          (encoding + signedPortionBeginOffset, signedPortionEndOffset - signedPortionBeginOffset,
-           data.signature.signature.value, data.signature.signature.length,
-           DEFAULT_PUBLIC_KEY_DER, sizeof(DEFAULT_PUBLIC_KEY_DER)))
-        cout << "Signature verification: FAILED" << endl;
-    }
-  }
-  double finish = getNowSeconds();
- 
-  return finish - start;
-}
-
-/**
- * Call benchmarkEncodeDataSecondsCpp and benchmarkDecodeDataSecondsCpp with appropriate nInterations.  Print the 
- * results to cout.
- * @param useComplex See benchmarkEncodeDataSecondsCpp.
- * @param useCrypto See benchmarkEncodeDataSecondsCpp and benchmarkDecodeDataSecondsCpp.
- */
-static void
-benchmarkEncodeDecodeDataCpp(bool useComplex, bool useCrypto)
-{
-  Block encoding;
-  {
-    int nIterations = useCrypto ? 20000 : 200000;
-    double duration = benchmarkEncodeDataSecondsCpp(nIterations, useComplex, useCrypto, encoding);
-    cout << "Encode " << (useComplex ? "complex" : "simple ") << " data C++: Crypto? " << (useCrypto ? "yes" : "no ") 
-         << ", Duration sec, Hz: " << duration << ", " << (nIterations / duration) << endl;  
-  }
-
-  BufferPtr wire = ptr_lib::make_shared<Buffer>(encoding.wire(), encoding.size());
-  {
-    int nIterations = useCrypto ? 10000 : 1000000;
-    double duration = benchmarkDecodeDataSecondsCpp(nIterations, useCrypto, wire);
-    cout << "Decode " << (useComplex ? "complex" : "simple ") << " data C++: Crypto? " << (useCrypto ? "yes" : "no ") 
-         << ", Duration sec, Hz: " << duration << ", " << (nIterations / duration) << endl;  
-  }
-}
-
-/**
- * Call benchmarkEncodeDataSecondsC and benchmarkDecodeDataSecondsC with appropriate nInterations.  Print the 
- * results to cout.
- * @param useComplex See benchmarkEncodeDataSecondsC.
- * @param useCrypto See benchmarkEncodeDataSecondsC and benchmarkDecodeDataSecondsC.
- */
-static void
-benchmarkEncodeDecodeDataC(bool useComplex, bool useCrypto)
-{
-  uint8_t encoding[1500];
-  size_t encodingLength;
-  {
-    int nIterations = useCrypto ? 20000 : 10000000;
-    double duration = benchmarkEncodeDataSecondsC(nIterations, useComplex, useCrypto, encoding, sizeof(encoding), &encodingLength);
-    cout << "Encode " << (useComplex ? "complex" : "simple ") << " data C:   Crypto? " << (useCrypto ? "yes" : "no ") 
-         << ", Duration sec, Hz: " << duration << ", " << (nIterations / duration) << endl;  
-  }
-  {
-    int nIterations = useCrypto ? 150000 : 15000000;
-    double duration = benchmarkDecodeDataSecondsC(nIterations, useCrypto, encoding, encodingLength);
-    cout << "Decode " << (useComplex ? "complex" : "simple ") << " data C:   Crypto? " << (useCrypto ? "yes" : "no ") 
-         << ", Duration sec, Hz: " << duration << ", " << (nIterations / duration) << endl;  
-  }
-}
-
-int 
-main(int argc, char** argv)
-{
-  try {
-    benchmarkEncodeDecodeDataCpp(false, false);
-    benchmarkEncodeDecodeDataCpp(true, false);
-    benchmarkEncodeDecodeDataCpp(false, true);
-    benchmarkEncodeDecodeDataCpp(true, true);
-    
-    benchmarkEncodeDecodeDataC(false, false);
-    benchmarkEncodeDecodeDataC(true, false);
-    benchmarkEncodeDecodeDataC(false, true);
-    benchmarkEncodeDecodeDataC(true, true);
-  } catch (std::exception& e) {
-    cout << "exception: " << e.what() << endl;
-  }
-  return 0;
-}
diff --git a/tests_boost/test-encode-decode-block.cpp b/tests/test-encode-decode-block.cpp
similarity index 100%
rename from tests_boost/test-encode-decode-block.cpp
rename to tests/test-encode-decode-block.cpp
diff --git a/tests/test-encode-decode-certificate.cpp b/tests/test-encode-decode-certificate.cpp
new file mode 100644
index 0000000..8da32bb
--- /dev/null
+++ b/tests/test-encode-decode-certificate.cpp
@@ -0,0 +1,183 @@
+/**
+ * Copyright (C) 2013 Regents of the University of California.
+ * See COPYING for copyright and distribution information.
+ */
+
+#include <boost/test/unit_test.hpp>
+
+#include <ndn-cpp-dev/security/certificate.hpp>
+#include <ndn-cpp-dev/security/public-key.hpp>
+
+#if __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wtautological-compare"
+#endif
+
+#include <cryptopp/cryptlib.h>
+#include <cryptopp/rsa.h>
+#include <cryptopp/files.h>
+
+#include <fstream>
+#include <boost/test/output_test_stream.hpp>
+
+using namespace std;
+using namespace ndn;
+
+using namespace CryptoPP;
+
+BOOST_AUTO_TEST_SUITE(TestCertificate)
+
+const uint8_t CertificateRaw[] = {
+};
+
+const unsigned char PRIVATE_KEY_DER[] = {
+0x30, 0x82, 0x02, 0x74, 0x02, 0x01, 0x00, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01,
+0x05, 0x00, 0x04, 0x82, 0x02, 0x5e, 0x30, 0x82, 0x02, 0x5a, 0x02, 0x01, 0x00, 0x02, 0x81, 0x81, 0x00, 0x9e, 0x06, 0x3e,
+0x47, 0x85, 0xb2, 0x34, 0x37, 0xaa, 0x85, 0x47, 0xac, 0x03, 0x24, 0x83, 0xb5, 0x9c, 0xa8, 0x05, 0x3a, 0x24, 0x1e, 0xeb,
+0x89, 0x01, 0xbb, 0xe9, 0x9b, 0xb2, 0xc3, 0x22, 0xac, 0x68, 0xe3, 0xf0, 0x6c, 0x02, 0xce, 0x68, 0xa6, 0xc4, 0xd0, 0xa7,
+0x06, 0x90, 0x9c, 0xaa, 0x1b, 0x08, 0x1d, 0x8b, 0x43, 0x9a, 0x33, 0x67, 0x44, 0x6d, 0x21, 0xa3, 0x1b, 0x88, 0x9a, 0x97,
+0x5e, 0x59, 0xc4, 0x15, 0x0b, 0xd9, 0x2c, 0xbd, 0x51, 0x07, 0x61, 0x82, 0xad, 0xc1, 0xb8, 0xd7, 0xbf, 0x9b, 0xcf, 0x7d,
+0x24, 0xc2, 0x63, 0xf3, 0x97, 0x17, 0xeb, 0xfe, 0x62, 0x25, 0xba, 0x5b, 0x4d, 0x8a, 0xc2, 0x7a, 0xbd, 0x43, 0x8a, 0x8f,
+0xb8, 0xf2, 0xf1, 0xc5, 0x6a, 0x30, 0xd3, 0x50, 0x8c, 0xc8, 0x9a, 0xdf, 0xef, 0xed, 0x35, 0xe7, 0x7a, 0x62, 0xea, 0x76,
+0x7c, 0xbb, 0x08, 0x26, 0xc7, 0x02, 0x01, 0x11, 0x02, 0x81, 0x80, 0x04, 0xa5, 0xd4, 0xa7, 0xc0, 0x2a, 0xe3, 0x6b, 0x0c,
+0x8b, 0x73, 0x0c, 0x96, 0xae, 0x40, 0x1b, 0xee, 0x04, 0xf1, 0x18, 0x4c, 0x5b, 0x43, 0x29, 0xad, 0x3a, 0x3b, 0x93, 0xa3,
+0x60, 0x17, 0x9b, 0xa8, 0xbb, 0x68, 0xf4, 0x1e, 0x33, 0x3f, 0x50, 0x32, 0xf7, 0x13, 0xf8, 0xa9, 0xe6, 0x7d, 0x79, 0x44,
+0x00, 0xde, 0x72, 0xed, 0xf2, 0x73, 0xfa, 0x7b, 0xae, 0x2a, 0x71, 0xc0, 0x40, 0xc8, 0x37, 0x6f, 0x38, 0xb2, 0x69, 0x1f,
+0xa8, 0x83, 0x7b, 0x42, 0x00, 0x73, 0x46, 0xe6, 0x4c, 0x91, 0x7f, 0x13, 0x06, 0x69, 0x06, 0xd8, 0x3f, 0x22, 0x15, 0x75,
+0xf6, 0xde, 0xcd, 0xb0, 0xbc, 0x66, 0x61, 0x91, 0x08, 0x9b, 0x2b, 0xb2, 0x00, 0xa9, 0x67, 0x05, 0x39, 0x40, 0xb9, 0x37,
+0x85, 0x88, 0x4f, 0x76, 0x79, 0x63, 0xc0, 0x88, 0x3c, 0x86, 0xa8, 0x12, 0x94, 0x5f, 0xe4, 0x36, 0x3d, 0xea, 0xb9, 0x02,
+0x41, 0x00, 0xb6, 0x2e, 0xbb, 0xcd, 0x2f, 0x3a, 0x99, 0xe0, 0xa1, 0xa5, 0x44, 0x77, 0xea, 0x0b, 0xbe, 0x16, 0x95, 0x0e,
+0x64, 0xa7, 0x68, 0xd7, 0x4b, 0x15, 0x15, 0x23, 0xe2, 0x1e, 0x4e, 0x00, 0x2c, 0x22, 0x97, 0xae, 0xb0, 0x74, 0xa6, 0x99,
+0xd0, 0x5d, 0xb7, 0x1b, 0x10, 0x34, 0x13, 0xd2, 0x5f, 0x6e, 0x56, 0xad, 0x85, 0x4a, 0xdb, 0xf0, 0x78, 0xbd, 0xf4, 0x8c,
+0xb7, 0x9a, 0x3e, 0x99, 0xef, 0xb9, 0x02, 0x41, 0x00, 0xde, 0x0d, 0xa7, 0x48, 0x75, 0x90, 0xad, 0x11, 0xa1, 0xac, 0xee,
+0xcb, 0x41, 0x81, 0xc6, 0xc8, 0x7f, 0xe7, 0x25, 0x94, 0xa1, 0x2a, 0x21, 0xa8, 0x57, 0xfe, 0x84, 0xf2, 0x5e, 0xb4, 0x96,
+0x35, 0xaf, 0xef, 0x2e, 0x7a, 0xf8, 0xda, 0x3f, 0xac, 0x8a, 0x3c, 0x1c, 0x9c, 0xbd, 0x44, 0xd6, 0x90, 0xb5, 0xce, 0x1b,
+0x12, 0xf9, 0x3b, 0x8c, 0x69, 0xf6, 0xa9, 0x02, 0x93, 0x48, 0x35, 0x0a, 0x7f, 0x02, 0x40, 0x6b, 0x2a, 0x8c, 0x96, 0xd0,
+0x7c, 0xd2, 0xfc, 0x9b, 0x52, 0x28, 0x46, 0x89, 0xac, 0x8d, 0xef, 0x2a, 0x80, 0xef, 0xea, 0x01, 0x6f, 0x95, 0x93, 0xee,
+0x51, 0x57, 0xd5, 0x97, 0x4b, 0x65, 0x41, 0x86, 0x66, 0xc2, 0x26, 0x80, 0x1e, 0x3e, 0x55, 0x3e, 0x88, 0x63, 0xe2, 0x66,
+0x03, 0x47, 0x31, 0xd8, 0xa2, 0x4e, 0x68, 0x45, 0x24, 0x0a, 0xca, 0x17, 0x61, 0xd5, 0x69, 0xca, 0x78, 0xab, 0x21, 0x02,
+0x41, 0x00, 0x8f, 0xae, 0x7b, 0x4d, 0x00, 0xc7, 0x06, 0x92, 0xf0, 0x24, 0x9a, 0x83, 0x84, 0xbd, 0x62, 0x81, 0xbc, 0x2c,
+0x27, 0x60, 0x2c, 0x0c, 0x33, 0xe5, 0x66, 0x1d, 0x28, 0xd9, 0x10, 0x1a, 0x7f, 0x4f, 0xea, 0x4f, 0x78, 0x6d, 0xb0, 0x14,
+0xbf, 0xc9, 0xff, 0x17, 0xd6, 0x47, 0x4d, 0x4a, 0xa8, 0xf4, 0x39, 0x67, 0x3e, 0xb1, 0xec, 0x8f, 0xf1, 0x71, 0xbd, 0xb8,
+0xa7, 0x50, 0x3d, 0xc7, 0xf7, 0xbb, 0x02, 0x40, 0x0d, 0x85, 0x32, 0x73, 0x9f, 0x0a, 0x33, 0x2f, 0x4b, 0xa2, 0xbd, 0xd1,
+0xb1, 0x42, 0xf0, 0x72, 0xa8, 0x7a, 0xc8, 0x15, 0x37, 0x1b, 0xde, 0x76, 0x70, 0xce, 0xfd, 0x69, 0x20, 0x00, 0x4d, 0xc9,
+0x4f, 0x35, 0x6f, 0xd1, 0x35, 0xa1, 0x04, 0x95, 0x30, 0xe8, 0x3b, 0xd5, 0x03, 0x5a, 0x50, 0x21, 0x6d, 0xa0, 0x84, 0x39,
+0xe9, 0x2e, 0x1e, 0xfc, 0xe4, 0x82, 0x43, 0x20, 0x46, 0x7d, 0x0a, 0xb6
+};
+
+const uint8_t PUBLIC_KEY[] = {
+0x30, 0x81, 0x9d, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x81,
+0x8b, 0x00, 0x30, 0x81, 0x87, 0x02, 0x81, 0x81, 0x00, 0x9e, 0x06, 0x3e, 0x47, 0x85, 0xb2, 0x34, 0x37, 0xaa, 0x85, 0x47,
+0xac, 0x03, 0x24, 0x83, 0xb5, 0x9c, 0xa8, 0x05, 0x3a, 0x24, 0x1e, 0xeb, 0x89, 0x01, 0xbb, 0xe9, 0x9b, 0xb2, 0xc3, 0x22,
+0xac, 0x68, 0xe3, 0xf0, 0x6c, 0x02, 0xce, 0x68, 0xa6, 0xc4, 0xd0, 0xa7, 0x06, 0x90, 0x9c, 0xaa, 0x1b, 0x08, 0x1d, 0x8b,
+0x43, 0x9a, 0x33, 0x67, 0x44, 0x6d, 0x21, 0xa3, 0x1b, 0x88, 0x9a, 0x97, 0x5e, 0x59, 0xc4, 0x15, 0x0b, 0xd9, 0x2c, 0xbd,
+0x51, 0x07, 0x61, 0x82, 0xad, 0xc1, 0xb8, 0xd7, 0xbf, 0x9b, 0xcf, 0x7d, 0x24, 0xc2, 0x63, 0xf3, 0x97, 0x17, 0xeb, 0xfe,
+0x62, 0x25, 0xba, 0x5b, 0x4d, 0x8a, 0xc2, 0x7a, 0xbd, 0x43, 0x8a, 0x8f, 0xb8, 0xf2, 0xf1, 0xc5, 0x6a, 0x30, 0xd3, 0x50,
+0x8c, 0xc8, 0x9a, 0xdf, 0xef, 0xed, 0x35, 0xe7, 0x7a, 0x62, 0xea, 0x76, 0x7c, 0xbb, 0x08, 0x26, 0xc7, 0x02, 0x01, 0x11
+};
+
+const uint8_t CERT[] = {
+0x30, 0x81, 0xff, 0x30, 0x22, 0x18, 0x0f, 0x32, 0x30, 0x31, 0x33, 0x31, 0x32, 0x32, 0x36, 0x32, 0x33, 0x32, 0x32, 0x35, 0x34, 0x5a, 0x18, 0x0f, 0x32, 0x30, 0x31, 0x33, 0x31, 0x32, 0x32, 0x36, 0x32, 0x33, 0x32, 0x32, 0x35, 0x34, 0x5a, 0x30, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x29, 0x13, 0x09, 0x54, 0x45, 0x53, 0x54, 0x20, 0x4e, 0x41, 0x4d, 0x45, 0x30, 0x81, 0x9d, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x81, 0x8b, 0x00, 0x30, 0x81, 0x87, 0x02, 0x81, 0x81, 0x00, 0x9e, 0x06, 0x3e, 0x47, 0x85, 0xb2, 0x34, 0x37, 0xaa, 0x85, 0x47, 0xac, 0x03, 0x24, 0x83, 0xb5, 0x9c, 0xa8, 0x05, 0x3a, 0x24, 0x1e, 0xeb, 0x89, 0x01, 0xbb, 0xe9, 0x9b, 0xb2, 0xc3, 0x22, 0xac, 0x68, 0xe3, 0xf0, 0x6c, 0x02, 0xce, 0x68, 0xa6, 0xc4, 0xd0, 0xa7, 0x06, 0x90, 0x9c, 0xaa, 0x1b, 0x08, 0x1d, 0x8b, 0x43, 0x9a, 0x33, 0x67, 0x44, 0x6d, 0x21, 0xa3, 0x1b, 0x88, 0x9a, 0x97, 0x5e, 0x59, 0xc4, 0x15, 0x0b, 0xd9, 0x2c, 0xbd, 0x51, 0x07, 0x61, 0x82, 0xad, 0xc1, 0xb8, 0xd7, 0xbf, 0x9b, 0xcf, 0x7d, 0x24, 0xc2, 0x63, 0xf3, 0x97, 0x17, 0xeb, 0xfe, 0x62, 0x25, 0xba, 0x5b, 0x4d, 0x8a, 0xc2, 0x7a, 0xbd, 0x43, 0x8a, 0x8f, 0xb8, 0xf2, 0xf1, 0xc5, 0x6a, 0x30, 0xd3, 0x50, 0x8c, 0xc8, 0x9a, 0xdf, 0xef, 0xed, 0x35, 0xe7, 0x7a, 0x62, 0xea, 0x76, 0x7c, 0xbb, 0x08, 0x26, 0xc7, 0x02, 0x01, 0x11, 0x30, 0x25, 0x30, 0x23, 0x06, 0x06, 0x2b, 0x06, 0x01, 0x05, 0x20, 0x01, 0x01, 0x01, 0xff, 0x04, 0x16, 0x30, 0x14, 0x04, 0x0c, 0x2f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x2f, 0x6b, 0x69, 0x74, 0x74, 0x79, 0x02, 0x01, 0x00, 0x02, 0x01, 0x0a
+};
+
+const std::string CERT_INFO = "Certificate name:\n"
+  "  /\n"
+  "Validity:\n"
+  "  NotBefore: 20131226T232254.000000\n"
+  "  NotAfter: 20131226T232254.000000\n"
+  "Subject Description:\n"
+  "  2.5.4.41: TEST NAME\n"
+  "Public key bits:\n"
+  "MIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQCeBj5HhbI0N6qFR6wDJIO1nKgF\n"
+  "OiQe64kBu+mbssMirGjj8GwCzmimxNCnBpCcqhsIHYtDmjNnRG0hoxuImpdeWcQV\n"
+  "C9ksvVEHYYKtwbjXv5vPfSTCY/OXF+v+YiW6W02Kwnq9Q4qPuPLxxWow01CMyJrf\n"
+  "7+0153pi6nZ8uwgmxwIB\n";
+
+BOOST_AUTO_TEST_CASE (Encode)
+{
+  ndn::Certificate c;
+
+  // validity
+  c.setNotBefore(1388100174000); // 12/26/2013 @ 11:22pm
+  c.setNotAfter(1388100174000); // 12/26/2013 @ 11:22pm
+
+  // subject
+  c.addSubjectDescription(CertificateSubjectDescription("2.5.4.41", "TEST NAME"));
+
+  // publicKeyInfo
+  ndn::PublicKey key(PUBLIC_KEY, sizeof(PUBLIC_KEY));
+  c.setPublicKeyInfo(key);
+
+  // extensions
+  BOOST_REQUIRE_NO_THROW({
+    std::string extenstionValue;
+    StringSink sink(extenstionValue);
+    DERSequenceEncoder seq(sink);
+    {
+      std::string name("/hello/kitty");
+      DEREncodeOctetString(seq, reinterpret_cast<const uint8_t*>(name.c_str()), name.size());
+      // trustClass
+      DEREncodeUnsigned<uint32_t>(seq, 0);
+      // trustLevel
+      DEREncodeUnsigned<uint32_t>(seq, 10);
+    }
+    seq.MessageEnd();
+  
+    c.addExtension(CertificateExtension("1.3.6.1.5.32.1", true,
+                                        reinterpret_cast<const uint8_t*>(extenstionValue.c_str()), extenstionValue.size()));
+  });
+  // RSA::PublicKey p;
+  // StringSource source(T, sizeof(T), true);
+  // p.Load(source);
+
+  BOOST_REQUIRE_NO_THROW(c.encode());
+  
+  // ofstream of("cert.out");
+  // of.write((const char*)c.getContent().value(), c.getContent().value_size());
+  
+  // const Block &wire = i.wireEncode();
+  BOOST_REQUIRE_EQUAL_COLLECTIONS(CERT, CERT+sizeof(CERT),
+                                c.getContent().value_begin(), c.getContent().value_end());
+
+  std::ostringstream os;
+  os << c << std::endl;
+  std::string info(os.str());
+  BOOST_REQUIRE_EQUAL_COLLECTIONS(CERT_INFO.begin(), CERT_INFO.end(),
+                                  info.begin(), info.end());
+}
+
+const unsigned char REAL_CERT[] = {
+0x30, 0x82, 0x01, 0x63, 0x30, 0x22, 0x18, 0x0f, 0x32, 0x30, 0x31, 0x33, 0x31, 0x31, 0x30, 0x31, 0x31, 0x37, 0x31, 0x31, 0x32, 0x32, 0x5a, 0x18, 0x0f, 0x32, 0x30, 0x31, 0x34, 0x31, 0x31, 0x30, 0x31, 0x31, 0x37, 0x31, 0x31, 0x32, 0x32, 0x5a, 0x30, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x29, 0x13, 0x10, 0x4e, 0x44, 0x4e, 0x20, 0x54, 0x65, 0x73, 0x74, 0x62, 0x65, 0x64, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x30, 0x82, 0x01, 0x20, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0d, 0x00, 0x30, 0x82, 0x01, 0x08, 0x02, 0x82, 0x01, 0x01, 0x00, 0xd3, 0xac, 0x7e, 0x7a, 0x5c, 0x33, 0x58, 0x21, 0xda, 0xe0, 0x8d, 0xdb, 0xca, 0xb6, 0x02, 0x30, 0x02, 0x15, 0xc5, 0x0a, 0x51, 0x54, 0xbb, 0x8e, 0x5e, 0x9d, 0x21, 0xf8, 0x14, 0xbe, 0xe4, 0x63, 0x60, 0x31, 0x53, 0xe2, 0xef, 0xee, 0x34, 0xa3, 0x8c, 0xd2, 0x24, 0x6f, 0xa4, 0x89, 0x4f, 0x02, 0x20, 0x7d, 0x66, 0xb6, 0x3f, 0x11, 0x40, 0x0c, 0xc1, 0x5f, 0xd8, 0x45, 0x23, 0x95, 0x40, 0xc8, 0xe0, 0xbc, 0x9d, 0x2f, 0x03, 0xf1, 0x83, 0x9f, 0x07, 0x0b, 0x76, 0xc9, 0x10, 0xd9, 0x3e, 0x0b, 0x75, 0x13, 0x93, 0xe9, 0xc9, 0x85, 0x01, 0x88, 0x36, 0x2e, 0xab, 0xfc, 0xe6, 0x24, 0x32, 0xfc, 0xc6, 0x3c, 0x40, 0x97, 0x1a, 0xcc, 0xcd, 0x53, 0xaa, 0x0f, 0xfb, 0xa3, 0xfe, 0xf9, 0x24, 0x70, 0x13, 0x3f, 0x4f, 0x5b, 0x7d, 0x43, 0xaa, 0x75, 0x0a, 0x94, 0x72, 0xab, 0xe1, 0x8c, 0x45, 0xb5, 0x78, 0x10, 0x01, 0xef, 0x1f, 0xb3, 0x05, 0x6f, 0xa6, 0xc3, 0xac, 0x7f, 0x6d, 0xf0, 0x31, 0xc4, 0x83, 0xb3, 0x4f, 0x50, 0x26, 0x92, 0x40, 0x1a, 0xdd, 0xec, 0xfb, 0xcb, 0xef, 0x63, 0xfe, 0x41, 0xd8, 0x8d, 0x1f, 0xdc, 0xec, 0xfc, 0x48, 0x95, 0xcc, 0x09, 0x1e, 0x30, 0x6e, 0x22, 0x9e, 0x24, 0x97, 0x2e, 0xe6, 0x0c, 0xdf, 0x3d, 0x20, 0x32, 0xaa, 0x9c, 0xc9, 0x45, 0x14, 0xaf, 0xaa, 0xf5, 0x17, 0xd2, 0x01, 0x98, 0x33, 0xbe, 0x2a, 0x9f, 0x7b, 0x9d, 0x98, 0x7c, 0x54, 0x22, 0xfe, 0x72, 0x72, 0x04, 0xc3, 0x2c, 0xc0, 0x14, 0x0b, 0xa9, 0x40, 0x7e, 0x46, 0xa1, 0x75, 0x16, 0x1a, 0x27, 0x9e, 0xf2, 0x82, 0x96, 0xc0, 0x7d, 0xaf, 0x18, 0x75, 0xfb, 0xbb, 0xab, 0x16, 0x66, 0xc0, 0xa9, 0xd7, 0x93, 0x4c, 0x48, 0x6d, 0xce, 0x0b, 0x88, 0xd4, 0x21, 0x93, 0x84, 0x89, 0x55, 0x05, 0xd5, 0x02, 0x01, 0x11
+};
+
+const std::string REAL_CERT_INFO = "Certificate name:\n"
+"  /tmp\n"
+"Validity:\n"
+"  NotBefore: 20131101T171122.000000\n"
+"  NotAfter: 20141101T171122.000000\n"
+"Subject Description:\n"
+"  2.5.4.41: NDN Testbed Root\n"
+"Public key bits:\n"
+"MIIBIDANBgkqhkiG9w0BAQEFAAOCAQ0AMIIBCAKCAQEA06x+elwzWCHa4I3byrYC\n"
+"MAIVxQpRVLuOXp0h+BS+5GNgMVPi7+40o4zSJG+kiU8CIH1mtj8RQAzBX9hFI5VA\n"
+"yOC8nS8D8YOfBwt2yRDZPgt1E5PpyYUBiDYuq/zmJDL8xjxAlxrMzVOqD/uj/vkk\n"
+"cBM/T1t9Q6p1CpRyq+GMRbV4EAHvH7MFb6bDrH9t8DHEg7NPUCaSQBrd7PvL72P+\n"
+"QdiNH9zs/EiVzAkeMG4iniSXLuYM3z0gMqqcyUUUr6r1F9IBmDO+Kp97nZh8VCL+\n"
+"cnIEwyzAFAupQH5GoXUWGiee8oKWwH2vGHX7u6sWZsCp15NMSG3OC4jUIZOEiVUF\n"
+"1QIB\n";
+
+BOOST_AUTO_TEST_CASE (Decode)
+{
+  ndn::Data d("/tmp");
+  d.setContent(REAL_CERT, sizeof(REAL_CERT));
+
+  ndn::Certificate c(d);
+
+  std::ostringstream os;
+  os << c << std::endl;
+  std::string info(os.str());
+  BOOST_REQUIRE_EQUAL_COLLECTIONS(REAL_CERT_INFO.begin(), REAL_CERT_INFO.end(),
+                                  info.begin(), info.end());
+}
+
+BOOST_AUTO_TEST_SUITE_END()
diff --git a/tests_boost/test-encode-decode-data.cpp b/tests/test-encode-decode-data.cpp
similarity index 100%
rename from tests_boost/test-encode-decode-data.cpp
rename to tests/test-encode-decode-data.cpp
diff --git a/tests_boost/test-encode-decode-forwarding-entry.cpp b/tests/test-encode-decode-forwarding-entry.cpp
similarity index 100%
rename from tests_boost/test-encode-decode-forwarding-entry.cpp
rename to tests/test-encode-decode-forwarding-entry.cpp
diff --git a/tests_boost/test-encode-decode-interest.cpp b/tests/test-encode-decode-interest.cpp
similarity index 100%
rename from tests_boost/test-encode-decode-interest.cpp
rename to tests/test-encode-decode-interest.cpp
diff --git a/tests_boost/test-faces.cpp b/tests/test-faces.cpp
similarity index 100%
rename from tests_boost/test-faces.cpp
rename to tests/test-faces.cpp
diff --git a/tests/test-get-async.cpp b/tests/test-get-async.cpp
deleted file mode 100644
index ce04cd8..0000000
--- a/tests/test-get-async.cpp
+++ /dev/null
@@ -1,72 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#include <cstdlib>
-#include <sstream>
-#include <iostream>
-#include <unistd.h>
-#include <ndn-cpp-dev/face.hpp>
-
-using namespace std;
-using namespace ndn;
-using namespace ndn::func_lib;
-#if NDN_CPP_HAVE_STD_FUNCTION
-// In the std library, the placeholders are in a different namespace than boost.
-using namespace func_lib::placeholders;
-#endif
-
-class Counter
-{
-public:
-  Counter() {
-    callbackCount_ = 0;
-  }
-
-  void onData(const ptr_lib::shared_ptr<const Interest>& interest, const ptr_lib::shared_ptr<Data>& data)
-  {
-    ++callbackCount_;
-    cout << "Got data packet with name " << data->getName().toUri() << endl;
-    // cout << string(reinterpret_cast<const char*>(data->getContent().value()), data->getContent().value_size()) << endl;
-  }
-
-  void onTimeout(const ptr_lib::shared_ptr<const Interest>& interest)
-  {
-    ++callbackCount_;
-    cout << "Time out for interest " << interest->getName().toUri() << endl;
-  }
-
-  int callbackCount_;
-};
-
-int main(int argc, char** argv)
-{
-  try {
-    Face face;
-
-    // Counter holds data used by the callbacks.
-    Counter counter;
-
-    Name name1("/%C1.M.S.localhost/%C1.M.SRV/ndnd/KEY");
-    cout << "Express name " << name1.toUri() << endl;
-    // Use bind to pass the counter object to the callbacks.
-    face.expressInterest(name1, bind(&Counter::onData, &counter, _1, _2), bind(&Counter::onTimeout, &counter, _1));
-
-    Name name2("/ndnx/ping");
-    cout << "Express name " << name2.toUri() << endl;
-    face.expressInterest(name2, bind(&Counter::onData, &counter, _1, _2), bind(&Counter::onTimeout, &counter, _1));
-
-    Name name3("/test/timeout");
-    cout << "Express name " << name3.toUri() << endl;
-    face.expressInterest(name3, bind(&Counter::onData, &counter, _1, _2), bind(&Counter::onTimeout, &counter, _1));
-
-    // The main event loop.
-    face.processEvents();
-
-  } catch (std::exception& e) {
-    cout << "exception: " << e.what() << endl;
-  }
-  return 0;
-}
diff --git a/tests/test-publish-async.cpp b/tests/test-publish-async.cpp
deleted file mode 100644
index b6a680f..0000000
--- a/tests/test-publish-async.cpp
+++ /dev/null
@@ -1,139 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#include <cstdlib>
-#include <sstream>
-#include <iostream>
-#include <time.h>
-#include <unistd.h>
-#include <ndn-cpp-dev/face.hpp>
-#include <ndn-cpp-dev/security/key-chain.hpp>
-
-using namespace std;
-using namespace ndn;
-
-static uint8_t DEFAULT_PUBLIC_KEY_DER[] = {
-0x30, 0x81, 0x9F, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x81,
-0x8D, 0x00, 0x30, 0x81, 0x89, 0x02, 0x81, 0x81, 0x00, 0xE1, 0x7D, 0x30, 0xA7, 0xD8, 0x28, 0xAB, 0x1B, 0x84, 0x0B, 0x17,
-0x54, 0x2D, 0xCA, 0xF6, 0x20, 0x7A, 0xFD, 0x22, 0x1E, 0x08, 0x6B, 0x2A, 0x60, 0xD1, 0x6C, 0xB7, 0xF5, 0x44, 0x48, 0xBA,
-0x9F, 0x3F, 0x08, 0xBC, 0xD0, 0x99, 0xDB, 0x21, 0xDD, 0x16, 0x2A, 0x77, 0x9E, 0x61, 0xAA, 0x89, 0xEE, 0xE5, 0x54, 0xD3,
-0xA4, 0x7D, 0xE2, 0x30, 0xBC, 0x7A, 0xC5, 0x90, 0xD5, 0x24, 0x06, 0x7C, 0x38, 0x98, 0xBB, 0xA6, 0xF5, 0xDC, 0x43, 0x60,
-0xB8, 0x45, 0xED, 0xA4, 0x8C, 0xBD, 0x9C, 0xF1, 0x26, 0xA7, 0x23, 0x44, 0x5F, 0x0E, 0x19, 0x52, 0xD7, 0x32, 0x5A, 0x75,
-0xFA, 0xF5, 0x56, 0x14, 0x4F, 0x9A, 0x98, 0xAF, 0x71, 0x86, 0xB0, 0x27, 0x86, 0x85, 0xB8, 0xE2, 0xC0, 0x8B, 0xEA, 0x87,
-0x17, 0x1B, 0x4D, 0xEE, 0x58, 0x5C, 0x18, 0x28, 0x29, 0x5B, 0x53, 0x95, 0xEB, 0x4A, 0x17, 0x77, 0x9F, 0x02, 0x03, 0x01,
-0x00, 01  
-};
-
-static uint8_t DEFAULT_PRIVATE_KEY_DER[] = {
-0x30, 0x82, 0x02, 0x5d, 0x02, 0x01, 0x00, 0x02, 0x81, 0x81, 0x00, 0xe1, 0x7d, 0x30, 0xa7, 0xd8, 0x28, 0xab, 0x1b, 0x84,
-0x0b, 0x17, 0x54, 0x2d, 0xca, 0xf6, 0x20, 0x7a, 0xfd, 0x22, 0x1e, 0x08, 0x6b, 0x2a, 0x60, 0xd1, 0x6c, 0xb7, 0xf5, 0x44,
-0x48, 0xba, 0x9f, 0x3f, 0x08, 0xbc, 0xd0, 0x99, 0xdb, 0x21, 0xdd, 0x16, 0x2a, 0x77, 0x9e, 0x61, 0xaa, 0x89, 0xee, 0xe5,
-0x54, 0xd3, 0xa4, 0x7d, 0xe2, 0x30, 0xbc, 0x7a, 0xc5, 0x90, 0xd5, 0x24, 0x06, 0x7c, 0x38, 0x98, 0xbb, 0xa6, 0xf5, 0xdc,
-0x43, 0x60, 0xb8, 0x45, 0xed, 0xa4, 0x8c, 0xbd, 0x9c, 0xf1, 0x26, 0xa7, 0x23, 0x44, 0x5f, 0x0e, 0x19, 0x52, 0xd7, 0x32,
-0x5a, 0x75, 0xfa, 0xf5, 0x56, 0x14, 0x4f, 0x9a, 0x98, 0xaf, 0x71, 0x86, 0xb0, 0x27, 0x86, 0x85, 0xb8, 0xe2, 0xc0, 0x8b,
-0xea, 0x87, 0x17, 0x1b, 0x4d, 0xee, 0x58, 0x5c, 0x18, 0x28, 0x29, 0x5b, 0x53, 0x95, 0xeb, 0x4a, 0x17, 0x77, 0x9f, 0x02,
-0x03, 0x01, 0x00, 0x01, 0x02, 0x81, 0x80, 0x1a, 0x4b, 0xfa, 0x4f, 0xa8, 0xc2, 0xdd, 0x69, 0xa1, 0x15, 0x96, 0x0b, 0xe8,
-0x27, 0x42, 0x5a, 0xf9, 0x5c, 0xea, 0x0c, 0xac, 0x98, 0xaa, 0xe1, 0x8d, 0xaa, 0xeb, 0x2d, 0x3c, 0x60, 0x6a, 0xfb, 0x45,
-0x63, 0xa4, 0x79, 0x83, 0x67, 0xed, 0xe4, 0x15, 0xc0, 0xb0, 0x20, 0x95, 0x6d, 0x49, 0x16, 0xc6, 0x42, 0x05, 0x48, 0xaa,
-0xb1, 0xa5, 0x53, 0x65, 0xd2, 0x02, 0x99, 0x08, 0xd1, 0x84, 0xcc, 0xf0, 0xcd, 0xea, 0x61, 0xc9, 0x39, 0x02, 0x3f, 0x87,
-0x4a, 0xe5, 0xc4, 0xd2, 0x07, 0x02, 0xe1, 0x9f, 0xa0, 0x06, 0xc2, 0xcc, 0x02, 0xe7, 0xaa, 0x6c, 0x99, 0x8a, 0xf8, 0x49,
-0x00, 0xf1, 0xa2, 0x8c, 0x0c, 0x8a, 0xb9, 0x4f, 0x6d, 0x73, 0x3b, 0x2c, 0xb7, 0x9f, 0x8a, 0xa6, 0x7f, 0x9b, 0x9f, 0xb7,
-0xa1, 0xcc, 0x74, 0x2e, 0x8f, 0xb8, 0xb0, 0x26, 0x89, 0xd2, 0xe5, 0x66, 0xe8, 0x8e, 0xa1, 0x02, 0x41, 0x00, 0xfc, 0xe7,
-0x52, 0xbc, 0x4e, 0x95, 0xb6, 0x1a, 0xb4, 0x62, 0xcc, 0xd8, 0x06, 0xe1, 0xdc, 0x7a, 0xa2, 0xb6, 0x71, 0x01, 0xaa, 0x27,
-0xfc, 0x99, 0xe5, 0xf2, 0x54, 0xbb, 0xb2, 0x85, 0xe1, 0x96, 0x54, 0x2d, 0xcb, 0xba, 0x86, 0xfa, 0x80, 0xdf, 0xcf, 0x39,
-0xe6, 0x74, 0xcb, 0x22, 0xce, 0x70, 0xaa, 0x10, 0x00, 0x73, 0x1d, 0x45, 0x0a, 0x39, 0x51, 0x84, 0xf5, 0x15, 0x8f, 0x37,
-0x76, 0x91, 0x02, 0x41, 0x00, 0xe4, 0x3f, 0xf0, 0xf4, 0xde, 0x79, 0x77, 0x48, 0x9b, 0x9c, 0x28, 0x45, 0x26, 0x57, 0x3c,
-0x71, 0x40, 0x28, 0x6a, 0xa1, 0xfe, 0xc3, 0xe5, 0x37, 0xa1, 0x03, 0xf6, 0x2d, 0xbe, 0x80, 0x64, 0x72, 0x69, 0x2e, 0x9b,
-0x4d, 0xe3, 0x2e, 0x1b, 0xfe, 0xe7, 0xf9, 0x77, 0x8c, 0x18, 0x53, 0x9f, 0xe2, 0xfe, 0x00, 0xbb, 0x49, 0x20, 0x47, 0xdf,
-0x01, 0x61, 0x87, 0xd6, 0xe3, 0x44, 0xb5, 0x03, 0x2f, 0x02, 0x40, 0x54, 0xec, 0x7c, 0xbc, 0xdd, 0x0a, 0xaa, 0xde, 0xe6,
-0xc9, 0xf2, 0x8d, 0x6c, 0x2a, 0x35, 0xf6, 0x3c, 0x63, 0x55, 0x29, 0x40, 0xf1, 0x32, 0x82, 0x9f, 0x53, 0xb3, 0x9e, 0x5f,
-0xc1, 0x53, 0x52, 0x3e, 0xac, 0x2e, 0x28, 0x51, 0xa1, 0x16, 0xdb, 0x90, 0xe3, 0x99, 0x7e, 0x88, 0xa4, 0x04, 0x7c, 0x92,
-0xae, 0xd2, 0xe7, 0xd4, 0xe1, 0x55, 0x20, 0x90, 0x3e, 0x3c, 0x6a, 0x63, 0xf0, 0x34, 0xf1, 0x02, 0x41, 0x00, 0x84, 0x5a,
-0x17, 0x6c, 0xc6, 0x3c, 0x84, 0xd0, 0x93, 0x7a, 0xff, 0x56, 0xe9, 0x9e, 0x98, 0x2b, 0xcb, 0x5a, 0x24, 0x4a, 0xff, 0x21,
-0xb4, 0x9e, 0x87, 0x3d, 0x76, 0xd8, 0x9b, 0xa8, 0x73, 0x96, 0x6c, 0x2b, 0x5c, 0x5e, 0xd3, 0xa6, 0xff, 0x10, 0xd6, 0x8e,
-0xaf, 0xa5, 0x8a, 0xcd, 0xa2, 0xde, 0xcb, 0x0e, 0xbd, 0x8a, 0xef, 0xae, 0xfd, 0x3f, 0x1d, 0xc0, 0xd8, 0xf8, 0x3b, 0xf5,
-0x02, 0x7d, 0x02, 0x41, 0x00, 0x8b, 0x26, 0xd3, 0x2c, 0x7d, 0x28, 0x38, 0x92, 0xf1, 0xbf, 0x15, 0x16, 0x39, 0x50, 0xc8,
-0x6d, 0x32, 0xec, 0x28, 0xf2, 0x8b, 0xd8, 0x70, 0xc5, 0xed, 0xe1, 0x7b, 0xff, 0x2d, 0x66, 0x8c, 0x86, 0x77, 0x43, 0xeb,
-0xb6, 0xf6, 0x50, 0x66, 0xb0, 0x40, 0x24, 0x6a, 0xaf, 0x98, 0x21, 0x45, 0x30, 0x01, 0x59, 0xd0, 0xc3, 0xfc, 0x7b, 0xae,
-0x30, 0x18, 0xeb, 0x90, 0xfb, 0x17, 0xd3, 0xce, 0xb5
-};
-
-class Echo {
-public:
-  Echo(KeyChainImpl<SecPublicInfoMemory, SecTpmMemory> &keyChain, Face &face)
-    : keyChain_(keyChain)
-    , face_(face)
-    , responseCount_(0)
-  { 
-  }
-  
-  // onInterest.
-  void operator()
-     (const ptr_lib::shared_ptr<const Name>& prefix, const ptr_lib::shared_ptr<const Interest>& interest) 
-  {
-    ++responseCount_;
-    
-    // Make and sign a Data packet.
-    Data data(interest->getName());
-    string content(string("Echo ") + interest->getName().toUri());
-    data.setFreshnessPeriod(1000);
-    data.setContent((const uint8_t *)&content[0], content.size());
-
-    keyChain_.sign(data);
-
-    // Put data on wire
-    face_.put(data);
-
-    // Unregister prefix to ensure that the processing thread finishes after Data
-    // packet is send out to the forwarder
-    face_.unsetInterestFilter(id_);
-  }
-  
-  // onRegisterFailed.
-  void operator()(const ptr_lib::shared_ptr<const Name>& prefix)
-  {
-    ++responseCount_;
-    cout << "Register failed for prefix " << prefix->toUri() << endl;
-  }
-
-  KeyChainImpl<SecPublicInfoMemory, SecTpmMemory> &keyChain_;
-  Face &face_;
-  int responseCount_;
-
-  const RegisteredPrefixId *id_;
-};
-
-int main(int argc, char** argv)
-{
-  try {
-    Face face;
-        
-    KeyChainImpl<SecPublicInfoMemory, SecTpmMemory> keyChain;
-
-    Name keyName("/testname/dsk-123");
-
-    // Initialize the storage.
-    keyChain.addPublicKey(keyName, KEY_TYPE_RSA,
-				  PublicKey(DEFAULT_PUBLIC_KEY_DER, sizeof(DEFAULT_PUBLIC_KEY_DER)));
-
-    keyChain.setKeyPairForKeyName(keyName,
-                                            DEFAULT_PUBLIC_KEY_DER, sizeof(DEFAULT_PUBLIC_KEY_DER),
-                                            DEFAULT_PRIVATE_KEY_DER, sizeof(DEFAULT_PRIVATE_KEY_DER));
-
-    keyChain.addCertificateAsKeyDefault(*keyChain.selfSign(keyName));
-    
-   
-    Echo echo(keyChain, face);
-    Name prefix("/testecho");
-    cout << "Register prefix  " << prefix.toUri() << endl;
-    echo.id_ = face.setInterestFilter(prefix, func_lib::ref(echo), func_lib::ref(echo));
-    
-    face.processEvents();
-  } catch (std::exception& e) {
-    cout << "exception: " << e.what() << endl;
-  }
-  return 0;
-}
diff --git a/tests/test-sec-tpm-file.cpp b/tests/test-sec-tpm-file.cpp
new file mode 100644
index 0000000..a74a84b
--- /dev/null
+++ b/tests/test-sec-tpm-file.cpp
@@ -0,0 +1,65 @@
+/**
+ * Copyright (C) 2013 Regents of the University of California.
+ * @author: Yingdi Yu <yingdi0@cs.ucla.edu>
+ * See COPYING for copyright and distribution information.
+ */
+
+#if __clang__
+#pragma clang diagnostic ignored "-Wtautological-compare"
+// #pragma clang diagnostic push
+// #pragma clang diagnostic ignored "-Wreorder"
+// #pragma clang diagnostic ignored "-Wunused-variable"
+// #pragma clang diagnostic ignored "-Wunused-function"
+// #elif __GNUC__
+// #pragma GCC diagnostic ignored "-Wreorder"
+// #pragma GCC diagnostic ignored "-Wunused-variable"
+// #pragma GCC diagnostic ignored "-Wunused-function"
+#endif
+
+#include <boost/test/unit_test.hpp>
+
+#include <ndn-cpp-dev/security/key-chain.hpp>
+#include <cryptopp/rsa.h>
+
+using namespace std;
+using namespace ndn;
+
+
+BOOST_AUTO_TEST_SUITE(TestSecTpmFile)
+
+BOOST_AUTO_TEST_CASE (SignVerify)
+{
+  SecTpmFile tpm;
+
+  Name keyName("/tmp/ksk-123456");
+  try {
+    tpm.generateKeyPairInTpm(keyName, KEY_TYPE_RSA, 2048);
+  }
+  catch(const SecTpm::Error&) {
+  }
+  
+  Data data("/tmp/test/1");
+  const uint8_t content[] = {0x01, 0x02, 0x03, 0x04};
+
+  Block sigBlock = tpm.signInTpm(content, sizeof(content), keyName, DIGEST_ALGORITHM_SHA256);
+  ptr_lib::shared_ptr<PublicKey> pubkeyPtr = tpm.getPublicKeyFromTpm(keyName);
+
+  {
+    using namespace CryptoPP;
+    
+    RSA::PublicKey publicKey;
+    ByteQueue queue;
+    queue.Put(reinterpret_cast<const byte*>(pubkeyPtr->get().buf()), pubkeyPtr->get().size());
+    publicKey.Load(queue);
+
+    RSASS<PKCS1v15, SHA256>::Verifier verifier (publicKey);
+    bool result = verifier.VerifyMessage(content, sizeof(content),
+				  sigBlock.value(), sigBlock.value_size());
+  
+    BOOST_REQUIRE_EQUAL(result, true);
+  }
+
+  //We should remove the temporary test key, this should be fixed in a later commit which will add delete operation in SecTpm.
+}
+
+BOOST_AUTO_TEST_SUITE_END()
diff --git a/tests/test-time.cpp b/tests/test-time.cpp
new file mode 100644
index 0000000..bc77fbd
--- /dev/null
+++ b/tests/test-time.cpp
@@ -0,0 +1,23 @@
+/**
+ * Copyright (C) 2013 Regents of the University of California.
+ * See COPYING for copyright and distribution information.
+ */
+
+#include <boost/test/unit_test.hpp>
+
+#include <../src/util/time.hpp>
+
+BOOST_AUTO_TEST_SUITE(TestTime)
+
+BOOST_AUTO_TEST_CASE (Simple)
+{
+  ndn::MillisecondsSince1970 value = ndn::getNowMilliseconds();
+  BOOST_CHECK_GT(value, 1390966967032);
+
+  BOOST_CHECK_EQUAL(ndn::toIsoString(1390966967032), "20140129T034247.032000");
+  BOOST_CHECK_EQUAL(ndn::fromIsoString("20140129T034247.032000"), 1390966967032);
+
+  BOOST_CHECK_EQUAL(ndn::fromIsoString("20140129T034247.032000Z"), 1390966967032);
+}
+
+BOOST_AUTO_TEST_SUITE_END()
diff --git a/tests/wscript b/tests/wscript
new file mode 100644
index 0000000..c63c031
--- /dev/null
+++ b/tests/wscript
@@ -0,0 +1,12 @@
+# -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
+
+top = '..'
+
+def build(bld):
+    unittests = bld.program (
+        target="unit-tests",
+        features = "cxx cxxprogram",
+        source = bld.path.ant_glob(['**/*.cpp']),
+        use = 'ndn-cpp-dev',
+        install_prefix = None,
+        )
diff --git a/tests_boost/Makefile.am b/tests_boost/Makefile.am
deleted file mode 100644
index 2e80613..0000000
--- a/tests_boost/Makefile.am
+++ /dev/null
@@ -1,15 +0,0 @@
-
-noinst_PROGRAMS=unit-tests
-
-# for i in `find . -name '*.cpp'`; do echo "  $i \\"; done
-unit_tests_SOURCES = \
-  main.cpp \
-  test-encode-decode-certificate.cpp \
-  test-encode-decode-data.cpp \
-  test-encode-decode-interest.cpp \
-  test-encode-decode-forwarding-entry.cpp \
-  test-encode-decode-block.cpp \
-  test-sec-tpm-file.cpp \
-  test-faces.cpp
-
-unit_tests_LDADD = ../libndn-cpp-dev.la @BOOST_SYSTEM_LIB@ @BOOST_UNIT_TEST_FRAMEWORK_LIB@ @OPENSSL_LIBS@ @CRYPTOPP_LIBS@ @OSX_SECURITY_LIBS@
diff --git a/tests_boost/test-encode-decode-certificate.cpp b/tests_boost/test-encode-decode-certificate.cpp
deleted file mode 100644
index b8f0159..0000000
--- a/tests_boost/test-encode-decode-certificate.cpp
+++ /dev/null
@@ -1,184 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Jeff Thompson <jefft0@remap.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#include <boost/test/unit_test.hpp>
-
-#include <ndn-cpp-dev/security/certificate.hpp>
-#include <ndn-cpp-dev/security/public-key.hpp>
-
-#if __clang__
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wtautological-compare"
-#endif
-
-#include <cryptopp/cryptlib.h>
-#include <cryptopp/rsa.h>
-#include <cryptopp/files.h>
-
-#include <fstream>
-#include <boost/test/output_test_stream.hpp>
-
-using namespace std;
-using namespace ndn;
-
-using namespace CryptoPP;
-
-BOOST_AUTO_TEST_SUITE(TestCertificate)
-
-const uint8_t CertificateRaw[] = {
-};
-
-const unsigned char PRIVATE_KEY_DER[] = {
-0x30, 0x82, 0x02, 0x74, 0x02, 0x01, 0x00, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01,
-0x05, 0x00, 0x04, 0x82, 0x02, 0x5e, 0x30, 0x82, 0x02, 0x5a, 0x02, 0x01, 0x00, 0x02, 0x81, 0x81, 0x00, 0x9e, 0x06, 0x3e,
-0x47, 0x85, 0xb2, 0x34, 0x37, 0xaa, 0x85, 0x47, 0xac, 0x03, 0x24, 0x83, 0xb5, 0x9c, 0xa8, 0x05, 0x3a, 0x24, 0x1e, 0xeb,
-0x89, 0x01, 0xbb, 0xe9, 0x9b, 0xb2, 0xc3, 0x22, 0xac, 0x68, 0xe3, 0xf0, 0x6c, 0x02, 0xce, 0x68, 0xa6, 0xc4, 0xd0, 0xa7,
-0x06, 0x90, 0x9c, 0xaa, 0x1b, 0x08, 0x1d, 0x8b, 0x43, 0x9a, 0x33, 0x67, 0x44, 0x6d, 0x21, 0xa3, 0x1b, 0x88, 0x9a, 0x97,
-0x5e, 0x59, 0xc4, 0x15, 0x0b, 0xd9, 0x2c, 0xbd, 0x51, 0x07, 0x61, 0x82, 0xad, 0xc1, 0xb8, 0xd7, 0xbf, 0x9b, 0xcf, 0x7d,
-0x24, 0xc2, 0x63, 0xf3, 0x97, 0x17, 0xeb, 0xfe, 0x62, 0x25, 0xba, 0x5b, 0x4d, 0x8a, 0xc2, 0x7a, 0xbd, 0x43, 0x8a, 0x8f,
-0xb8, 0xf2, 0xf1, 0xc5, 0x6a, 0x30, 0xd3, 0x50, 0x8c, 0xc8, 0x9a, 0xdf, 0xef, 0xed, 0x35, 0xe7, 0x7a, 0x62, 0xea, 0x76,
-0x7c, 0xbb, 0x08, 0x26, 0xc7, 0x02, 0x01, 0x11, 0x02, 0x81, 0x80, 0x04, 0xa5, 0xd4, 0xa7, 0xc0, 0x2a, 0xe3, 0x6b, 0x0c,
-0x8b, 0x73, 0x0c, 0x96, 0xae, 0x40, 0x1b, 0xee, 0x04, 0xf1, 0x18, 0x4c, 0x5b, 0x43, 0x29, 0xad, 0x3a, 0x3b, 0x93, 0xa3,
-0x60, 0x17, 0x9b, 0xa8, 0xbb, 0x68, 0xf4, 0x1e, 0x33, 0x3f, 0x50, 0x32, 0xf7, 0x13, 0xf8, 0xa9, 0xe6, 0x7d, 0x79, 0x44,
-0x00, 0xde, 0x72, 0xed, 0xf2, 0x73, 0xfa, 0x7b, 0xae, 0x2a, 0x71, 0xc0, 0x40, 0xc8, 0x37, 0x6f, 0x38, 0xb2, 0x69, 0x1f,
-0xa8, 0x83, 0x7b, 0x42, 0x00, 0x73, 0x46, 0xe6, 0x4c, 0x91, 0x7f, 0x13, 0x06, 0x69, 0x06, 0xd8, 0x3f, 0x22, 0x15, 0x75,
-0xf6, 0xde, 0xcd, 0xb0, 0xbc, 0x66, 0x61, 0x91, 0x08, 0x9b, 0x2b, 0xb2, 0x00, 0xa9, 0x67, 0x05, 0x39, 0x40, 0xb9, 0x37,
-0x85, 0x88, 0x4f, 0x76, 0x79, 0x63, 0xc0, 0x88, 0x3c, 0x86, 0xa8, 0x12, 0x94, 0x5f, 0xe4, 0x36, 0x3d, 0xea, 0xb9, 0x02,
-0x41, 0x00, 0xb6, 0x2e, 0xbb, 0xcd, 0x2f, 0x3a, 0x99, 0xe0, 0xa1, 0xa5, 0x44, 0x77, 0xea, 0x0b, 0xbe, 0x16, 0x95, 0x0e,
-0x64, 0xa7, 0x68, 0xd7, 0x4b, 0x15, 0x15, 0x23, 0xe2, 0x1e, 0x4e, 0x00, 0x2c, 0x22, 0x97, 0xae, 0xb0, 0x74, 0xa6, 0x99,
-0xd0, 0x5d, 0xb7, 0x1b, 0x10, 0x34, 0x13, 0xd2, 0x5f, 0x6e, 0x56, 0xad, 0x85, 0x4a, 0xdb, 0xf0, 0x78, 0xbd, 0xf4, 0x8c,
-0xb7, 0x9a, 0x3e, 0x99, 0xef, 0xb9, 0x02, 0x41, 0x00, 0xde, 0x0d, 0xa7, 0x48, 0x75, 0x90, 0xad, 0x11, 0xa1, 0xac, 0xee,
-0xcb, 0x41, 0x81, 0xc6, 0xc8, 0x7f, 0xe7, 0x25, 0x94, 0xa1, 0x2a, 0x21, 0xa8, 0x57, 0xfe, 0x84, 0xf2, 0x5e, 0xb4, 0x96,
-0x35, 0xaf, 0xef, 0x2e, 0x7a, 0xf8, 0xda, 0x3f, 0xac, 0x8a, 0x3c, 0x1c, 0x9c, 0xbd, 0x44, 0xd6, 0x90, 0xb5, 0xce, 0x1b,
-0x12, 0xf9, 0x3b, 0x8c, 0x69, 0xf6, 0xa9, 0x02, 0x93, 0x48, 0x35, 0x0a, 0x7f, 0x02, 0x40, 0x6b, 0x2a, 0x8c, 0x96, 0xd0,
-0x7c, 0xd2, 0xfc, 0x9b, 0x52, 0x28, 0x46, 0x89, 0xac, 0x8d, 0xef, 0x2a, 0x80, 0xef, 0xea, 0x01, 0x6f, 0x95, 0x93, 0xee,
-0x51, 0x57, 0xd5, 0x97, 0x4b, 0x65, 0x41, 0x86, 0x66, 0xc2, 0x26, 0x80, 0x1e, 0x3e, 0x55, 0x3e, 0x88, 0x63, 0xe2, 0x66,
-0x03, 0x47, 0x31, 0xd8, 0xa2, 0x4e, 0x68, 0x45, 0x24, 0x0a, 0xca, 0x17, 0x61, 0xd5, 0x69, 0xca, 0x78, 0xab, 0x21, 0x02,
-0x41, 0x00, 0x8f, 0xae, 0x7b, 0x4d, 0x00, 0xc7, 0x06, 0x92, 0xf0, 0x24, 0x9a, 0x83, 0x84, 0xbd, 0x62, 0x81, 0xbc, 0x2c,
-0x27, 0x60, 0x2c, 0x0c, 0x33, 0xe5, 0x66, 0x1d, 0x28, 0xd9, 0x10, 0x1a, 0x7f, 0x4f, 0xea, 0x4f, 0x78, 0x6d, 0xb0, 0x14,
-0xbf, 0xc9, 0xff, 0x17, 0xd6, 0x47, 0x4d, 0x4a, 0xa8, 0xf4, 0x39, 0x67, 0x3e, 0xb1, 0xec, 0x8f, 0xf1, 0x71, 0xbd, 0xb8,
-0xa7, 0x50, 0x3d, 0xc7, 0xf7, 0xbb, 0x02, 0x40, 0x0d, 0x85, 0x32, 0x73, 0x9f, 0x0a, 0x33, 0x2f, 0x4b, 0xa2, 0xbd, 0xd1,
-0xb1, 0x42, 0xf0, 0x72, 0xa8, 0x7a, 0xc8, 0x15, 0x37, 0x1b, 0xde, 0x76, 0x70, 0xce, 0xfd, 0x69, 0x20, 0x00, 0x4d, 0xc9,
-0x4f, 0x35, 0x6f, 0xd1, 0x35, 0xa1, 0x04, 0x95, 0x30, 0xe8, 0x3b, 0xd5, 0x03, 0x5a, 0x50, 0x21, 0x6d, 0xa0, 0x84, 0x39,
-0xe9, 0x2e, 0x1e, 0xfc, 0xe4, 0x82, 0x43, 0x20, 0x46, 0x7d, 0x0a, 0xb6
-};
-
-const uint8_t PUBLIC_KEY[] = {
-0x30, 0x81, 0x9d, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x81,
-0x8b, 0x00, 0x30, 0x81, 0x87, 0x02, 0x81, 0x81, 0x00, 0x9e, 0x06, 0x3e, 0x47, 0x85, 0xb2, 0x34, 0x37, 0xaa, 0x85, 0x47,
-0xac, 0x03, 0x24, 0x83, 0xb5, 0x9c, 0xa8, 0x05, 0x3a, 0x24, 0x1e, 0xeb, 0x89, 0x01, 0xbb, 0xe9, 0x9b, 0xb2, 0xc3, 0x22,
-0xac, 0x68, 0xe3, 0xf0, 0x6c, 0x02, 0xce, 0x68, 0xa6, 0xc4, 0xd0, 0xa7, 0x06, 0x90, 0x9c, 0xaa, 0x1b, 0x08, 0x1d, 0x8b,
-0x43, 0x9a, 0x33, 0x67, 0x44, 0x6d, 0x21, 0xa3, 0x1b, 0x88, 0x9a, 0x97, 0x5e, 0x59, 0xc4, 0x15, 0x0b, 0xd9, 0x2c, 0xbd,
-0x51, 0x07, 0x61, 0x82, 0xad, 0xc1, 0xb8, 0xd7, 0xbf, 0x9b, 0xcf, 0x7d, 0x24, 0xc2, 0x63, 0xf3, 0x97, 0x17, 0xeb, 0xfe,
-0x62, 0x25, 0xba, 0x5b, 0x4d, 0x8a, 0xc2, 0x7a, 0xbd, 0x43, 0x8a, 0x8f, 0xb8, 0xf2, 0xf1, 0xc5, 0x6a, 0x30, 0xd3, 0x50,
-0x8c, 0xc8, 0x9a, 0xdf, 0xef, 0xed, 0x35, 0xe7, 0x7a, 0x62, 0xea, 0x76, 0x7c, 0xbb, 0x08, 0x26, 0xc7, 0x02, 0x01, 0x11
-};
-
-const uint8_t CERT[] = {
-0x30, 0x81, 0xff, 0x30, 0x22, 0x18, 0x0f, 0x32, 0x30, 0x31, 0x33, 0x31, 0x32, 0x32, 0x36, 0x32, 0x33, 0x32, 0x32, 0x35, 0x34, 0x5a, 0x18, 0x0f, 0x32, 0x30, 0x31, 0x33, 0x31, 0x32, 0x32, 0x36, 0x32, 0x33, 0x32, 0x32, 0x35, 0x34, 0x5a, 0x30, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x29, 0x13, 0x09, 0x54, 0x45, 0x53, 0x54, 0x20, 0x4e, 0x41, 0x4d, 0x45, 0x30, 0x81, 0x9d, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x81, 0x8b, 0x00, 0x30, 0x81, 0x87, 0x02, 0x81, 0x81, 0x00, 0x9e, 0x06, 0x3e, 0x47, 0x85, 0xb2, 0x34, 0x37, 0xaa, 0x85, 0x47, 0xac, 0x03, 0x24, 0x83, 0xb5, 0x9c, 0xa8, 0x05, 0x3a, 0x24, 0x1e, 0xeb, 0x89, 0x01, 0xbb, 0xe9, 0x9b, 0xb2, 0xc3, 0x22, 0xac, 0x68, 0xe3, 0xf0, 0x6c, 0x02, 0xce, 0x68, 0xa6, 0xc4, 0xd0, 0xa7, 0x06, 0x90, 0x9c, 0xaa, 0x1b, 0x08, 0x1d, 0x8b, 0x43, 0x9a, 0x33, 0x67, 0x44, 0x6d, 0x21, 0xa3, 0x1b, 0x88, 0x9a, 0x97, 0x5e, 0x59, 0xc4, 0x15, 0x0b, 0xd9, 0x2c, 0xbd, 0x51, 0x07, 0x61, 0x82, 0xad, 0xc1, 0xb8, 0xd7, 0xbf, 0x9b, 0xcf, 0x7d, 0x24, 0xc2, 0x63, 0xf3, 0x97, 0x17, 0xeb, 0xfe, 0x62, 0x25, 0xba, 0x5b, 0x4d, 0x8a, 0xc2, 0x7a, 0xbd, 0x43, 0x8a, 0x8f, 0xb8, 0xf2, 0xf1, 0xc5, 0x6a, 0x30, 0xd3, 0x50, 0x8c, 0xc8, 0x9a, 0xdf, 0xef, 0xed, 0x35, 0xe7, 0x7a, 0x62, 0xea, 0x76, 0x7c, 0xbb, 0x08, 0x26, 0xc7, 0x02, 0x01, 0x11, 0x30, 0x25, 0x30, 0x23, 0x06, 0x06, 0x2b, 0x06, 0x01, 0x05, 0x20, 0x01, 0x01, 0x01, 0xff, 0x04, 0x16, 0x30, 0x14, 0x04, 0x0c, 0x2f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x2f, 0x6b, 0x69, 0x74, 0x74, 0x79, 0x02, 0x01, 0x00, 0x02, 0x01, 0x0a
-};
-
-const std::string CERT_INFO = "Certificate name:\n"
-  "  /\n"
-  "Validity:\n"
-  "  NotBefore: 20131226T232254.000000\n"
-  "  NotAfter: 20131226T232254.000000\n"
-  "Subject Description:\n"
-  "  2.5.4.41: TEST NAME\n"
-  "Public key bits:\n"
-  "MIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQCeBj5HhbI0N6qFR6wDJIO1nKgF\n"
-  "OiQe64kBu+mbssMirGjj8GwCzmimxNCnBpCcqhsIHYtDmjNnRG0hoxuImpdeWcQV\n"
-  "C9ksvVEHYYKtwbjXv5vPfSTCY/OXF+v+YiW6W02Kwnq9Q4qPuPLxxWow01CMyJrf\n"
-  "7+0153pi6nZ8uwgmxwIB\n";
-
-BOOST_AUTO_TEST_CASE (Encode)
-{
-  ndn::Certificate c;
-
-  // validity
-  c.setNotBefore(1388100174000); // 12/26/2013 @ 11:22pm
-  c.setNotAfter(1388100174000); // 12/26/2013 @ 11:22pm
-
-  // subject
-  c.addSubjectDescription(CertificateSubjectDescription("2.5.4.41", "TEST NAME"));
-
-  // publicKeyInfo
-  ndn::PublicKey key(PUBLIC_KEY, sizeof(PUBLIC_KEY));
-  c.setPublicKeyInfo(key);
-
-  // extensions
-  BOOST_REQUIRE_NO_THROW({
-    std::string extenstionValue;
-    StringSink sink(extenstionValue);
-    DERSequenceEncoder seq(sink);
-    {
-      std::string name("/hello/kitty");
-      DEREncodeOctetString(seq, reinterpret_cast<const uint8_t*>(name.c_str()), name.size());
-      // trustClass
-      DEREncodeUnsigned<uint32_t>(seq, 0);
-      // trustLevel
-      DEREncodeUnsigned<uint32_t>(seq, 10);
-    }
-    seq.MessageEnd();
-  
-    c.addExtension(CertificateExtension("1.3.6.1.5.32.1", true,
-                                        reinterpret_cast<const uint8_t*>(extenstionValue.c_str()), extenstionValue.size()));
-  });
-  // RSA::PublicKey p;
-  // StringSource source(T, sizeof(T), true);
-  // p.Load(source);
-
-  BOOST_REQUIRE_NO_THROW(c.encode());
-  
-  // ofstream of("cert.out");
-  // of.write((const char*)c.getContent().value(), c.getContent().value_size());
-  
-  // const Block &wire = i.wireEncode();
-  BOOST_REQUIRE_EQUAL_COLLECTIONS(CERT, CERT+sizeof(CERT),
-                                c.getContent().value_begin(), c.getContent().value_end());
-
-  std::ostringstream os;
-  os << c << std::endl;
-  std::string info(os.str());
-  BOOST_REQUIRE_EQUAL_COLLECTIONS(CERT_INFO.begin(), CERT_INFO.end(),
-                                  info.begin(), info.end());
-}
-
-const unsigned char REAL_CERT[] = {
-0x30, 0x82, 0x01, 0x63, 0x30, 0x22, 0x18, 0x0f, 0x32, 0x30, 0x31, 0x33, 0x31, 0x31, 0x30, 0x31, 0x31, 0x37, 0x31, 0x31, 0x32, 0x32, 0x5a, 0x18, 0x0f, 0x32, 0x30, 0x31, 0x34, 0x31, 0x31, 0x30, 0x31, 0x31, 0x37, 0x31, 0x31, 0x32, 0x32, 0x5a, 0x30, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x29, 0x13, 0x10, 0x4e, 0x44, 0x4e, 0x20, 0x54, 0x65, 0x73, 0x74, 0x62, 0x65, 0x64, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x30, 0x82, 0x01, 0x20, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0d, 0x00, 0x30, 0x82, 0x01, 0x08, 0x02, 0x82, 0x01, 0x01, 0x00, 0xd3, 0xac, 0x7e, 0x7a, 0x5c, 0x33, 0x58, 0x21, 0xda, 0xe0, 0x8d, 0xdb, 0xca, 0xb6, 0x02, 0x30, 0x02, 0x15, 0xc5, 0x0a, 0x51, 0x54, 0xbb, 0x8e, 0x5e, 0x9d, 0x21, 0xf8, 0x14, 0xbe, 0xe4, 0x63, 0x60, 0x31, 0x53, 0xe2, 0xef, 0xee, 0x34, 0xa3, 0x8c, 0xd2, 0x24, 0x6f, 0xa4, 0x89, 0x4f, 0x02, 0x20, 0x7d, 0x66, 0xb6, 0x3f, 0x11, 0x40, 0x0c, 0xc1, 0x5f, 0xd8, 0x45, 0x23, 0x95, 0x40, 0xc8, 0xe0, 0xbc, 0x9d, 0x2f, 0x03, 0xf1, 0x83, 0x9f, 0x07, 0x0b, 0x76, 0xc9, 0x10, 0xd9, 0x3e, 0x0b, 0x75, 0x13, 0x93, 0xe9, 0xc9, 0x85, 0x01, 0x88, 0x36, 0x2e, 0xab, 0xfc, 0xe6, 0x24, 0x32, 0xfc, 0xc6, 0x3c, 0x40, 0x97, 0x1a, 0xcc, 0xcd, 0x53, 0xaa, 0x0f, 0xfb, 0xa3, 0xfe, 0xf9, 0x24, 0x70, 0x13, 0x3f, 0x4f, 0x5b, 0x7d, 0x43, 0xaa, 0x75, 0x0a, 0x94, 0x72, 0xab, 0xe1, 0x8c, 0x45, 0xb5, 0x78, 0x10, 0x01, 0xef, 0x1f, 0xb3, 0x05, 0x6f, 0xa6, 0xc3, 0xac, 0x7f, 0x6d, 0xf0, 0x31, 0xc4, 0x83, 0xb3, 0x4f, 0x50, 0x26, 0x92, 0x40, 0x1a, 0xdd, 0xec, 0xfb, 0xcb, 0xef, 0x63, 0xfe, 0x41, 0xd8, 0x8d, 0x1f, 0xdc, 0xec, 0xfc, 0x48, 0x95, 0xcc, 0x09, 0x1e, 0x30, 0x6e, 0x22, 0x9e, 0x24, 0x97, 0x2e, 0xe6, 0x0c, 0xdf, 0x3d, 0x20, 0x32, 0xaa, 0x9c, 0xc9, 0x45, 0x14, 0xaf, 0xaa, 0xf5, 0x17, 0xd2, 0x01, 0x98, 0x33, 0xbe, 0x2a, 0x9f, 0x7b, 0x9d, 0x98, 0x7c, 0x54, 0x22, 0xfe, 0x72, 0x72, 0x04, 0xc3, 0x2c, 0xc0, 0x14, 0x0b, 0xa9, 0x40, 0x7e, 0x46, 0xa1, 0x75, 0x16, 0x1a, 0x27, 0x9e, 0xf2, 0x82, 0x96, 0xc0, 0x7d, 0xaf, 0x18, 0x75, 0xfb, 0xbb, 0xab, 0x16, 0x66, 0xc0, 0xa9, 0xd7, 0x93, 0x4c, 0x48, 0x6d, 0xce, 0x0b, 0x88, 0xd4, 0x21, 0x93, 0x84, 0x89, 0x55, 0x05, 0xd5, 0x02, 0x01, 0x11
-};
-
-const std::string REAL_CERT_INFO = "Certificate name:\n"
-"  /tmp\n"
-"Validity:\n"
-"  NotBefore: 20131101T171122.000000\n"
-"  NotAfter: 20141101T171122.000000\n"
-"Subject Description:\n"
-"  2.5.4.41: NDN Testbed Root\n"
-"Public key bits:\n"
-"MIIBIDANBgkqhkiG9w0BAQEFAAOCAQ0AMIIBCAKCAQEA06x+elwzWCHa4I3byrYC\n"
-"MAIVxQpRVLuOXp0h+BS+5GNgMVPi7+40o4zSJG+kiU8CIH1mtj8RQAzBX9hFI5VA\n"
-"yOC8nS8D8YOfBwt2yRDZPgt1E5PpyYUBiDYuq/zmJDL8xjxAlxrMzVOqD/uj/vkk\n"
-"cBM/T1t9Q6p1CpRyq+GMRbV4EAHvH7MFb6bDrH9t8DHEg7NPUCaSQBrd7PvL72P+\n"
-"QdiNH9zs/EiVzAkeMG4iniSXLuYM3z0gMqqcyUUUr6r1F9IBmDO+Kp97nZh8VCL+\n"
-"cnIEwyzAFAupQH5GoXUWGiee8oKWwH2vGHX7u6sWZsCp15NMSG3OC4jUIZOEiVUF\n"
-"1QIB\n";
-
-BOOST_AUTO_TEST_CASE (Decode)
-{
-  ndn::Data d("/tmp");
-  d.setContent(REAL_CERT, sizeof(REAL_CERT));
-
-  ndn::Certificate c(d);
-
-  std::ostringstream os;
-  os << c << std::endl;
-  std::string info(os.str());
-  BOOST_REQUIRE_EQUAL_COLLECTIONS(REAL_CERT_INFO.begin(), REAL_CERT_INFO.end(),
-                                  info.begin(), info.end());
-}
-
-BOOST_AUTO_TEST_SUITE_END()
diff --git a/tests_boost/test-sec-tpm-file.cpp b/tests_boost/test-sec-tpm-file.cpp
deleted file mode 100644
index 9d75a38..0000000
--- a/tests_boost/test-sec-tpm-file.cpp
+++ /dev/null
@@ -1,63 +0,0 @@
-/**
- * Copyright (C) 2013 Regents of the University of California.
- * @author: Yingdi Yu <yingdi0@cs.ucla.edu>
- * See COPYING for copyright and distribution information.
- */
-
-#if __clang__
-#pragma clang diagnostic ignored "-Wtautological-compare"
-// #pragma clang diagnostic push
-// #pragma clang diagnostic ignored "-Wreorder"
-// #pragma clang diagnostic ignored "-Wunused-variable"
-// #pragma clang diagnostic ignored "-Wunused-function"
-// #elif __GNUC__
-// #pragma GCC diagnostic ignored "-Wreorder"
-// #pragma GCC diagnostic ignored "-Wunused-variable"
-// #pragma GCC diagnostic ignored "-Wunused-function"
-#endif
-
-#include <boost/test/unit_test.hpp>
-
-#include <ndn-cpp-dev/security/key-chain.hpp>
-#include <cryptopp/rsa.h>
-
-using namespace std;
-using namespace ndn;
-
-
-BOOST_AUTO_TEST_SUITE(TestSecTpmFile)
-
-BOOST_AUTO_TEST_CASE (SignVerify)
-{
-  SecTpmFile tpm;
-
-  Name keyName("/tmp/ksk-123456");
-  tpm.generateKeyPairInTpm(keyName, KEY_TYPE_RSA, 2048);
-  
-
-
-  Data data("/tmp/test/1");
-  const uint8_t content[] = {0x01, 0x02, 0x03, 0x04};
-
-  Block sigBlock = tpm.signInTpm(content, sizeof(content), keyName, DIGEST_ALGORITHM_SHA256);
-  ptr_lib::shared_ptr<PublicKey> pubkeyPtr = tpm.getPublicKeyFromTpm(keyName);
-
-  {
-    using namespace CryptoPP;
-    
-    RSA::PublicKey publicKey;
-    ByteQueue queue;
-    queue.Put(reinterpret_cast<const byte*>(pubkeyPtr->get().buf()), pubkeyPtr->get().size());
-    publicKey.Load(queue);
-
-    RSASS<PKCS1v15, SHA256>::Verifier verifier (publicKey);
-    bool result = verifier.VerifyMessage(content, sizeof(content),
-				  sigBlock.value(), sigBlock.value_size());
-  
-    BOOST_REQUIRE_EQUAL(result, true);
-  }
-
-  //We should remove the temporary test key, this should be fixed in a later commit which will add delete operation in SecTpm.
-}
-
-BOOST_AUTO_TEST_SUITE_END()
diff --git a/tools/Makefile.am b/tools/Makefile.am
deleted file mode 100644
index f344e7d..0000000
--- a/tools/Makefile.am
+++ /dev/null
@@ -1,10 +0,0 @@
-LDADD = ../libndn-cpp-dev.la @BOOST_SYSTEM_LIB@
-
-bin_PROGRAMS = tlvdump ndncatchunks3 ndnputchunks3
-
-tlvdump_SOURCES      = tlvdump.cpp
-
-ndncatchunks3_SOURCES = ndncatchunks3.cpp
-
-ndnputchunks3_SOURCES = ndnputchunks3.cpp
-
diff --git a/tools/wscript b/tools/wscript
new file mode 100644
index 0000000..be76916
--- /dev/null
+++ b/tools/wscript
@@ -0,0 +1,11 @@
+# -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
+
+top = '..'
+
+def build(bld):
+    for app in bld.path.ant_glob('*.cpp'):
+        bld(features=['cxx', 'cxxprogram'],
+            target = '%s' % (str(app.change_ext('','.cpp'))),
+            source = app,
+            use = 'ndn-cpp-dev',
+            )        
diff --git a/waf b/waf
new file mode 100755
index 0000000..78a44f3
--- /dev/null
+++ b/waf
Binary files differ
diff --git a/wscript b/wscript
new file mode 100644
index 0000000..f71a747
--- /dev/null
+++ b/wscript
@@ -0,0 +1,205 @@
+# -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
+VERSION='0.3~dev0'
+NAME="ndn-cpp-dev"
+
+from waflib import Build, Logs, Utils, Task, TaskGen, Configure
+
+def options(opt):
+    opt.load('compiler_c compiler_cxx gnu_dirs c_osx')
+    opt.load('boost doxygen openssl cryptopp', tooldir=['.waf-tools'])
+
+    opt = opt.add_option_group('NDN-CPP Options')
+
+    opt.add_option('--debug',action='store_true',default=False,dest='debug',help='''debugging mode''')
+    
+    opt.add_option('--with-tests', action='store_true',default=False,dest='with_tests',
+                   help='''build unit tests''')
+    opt.add_option('--with-log4cxx', action='store_true',default=False,dest='log4cxx',
+                   help='''Compile with log4cxx logging support''')
+
+    opt.add_option('--with-c++11', action='store_true', default=False, dest='use_cxx11',
+                   help='''Use C++11 features, even if available in the compiler''')
+    opt.add_option('--without-system-boost', action='store_false', default=True, dest='use_system_boost',
+                   help='''Use system's boost libraries''')
+
+
+def configure(conf):
+    conf.load("compiler_c compiler_cxx boost gnu_dirs c_osx openssl cryptopp")
+    try:
+        conf.load("doxygen")
+    except:
+        pass
+
+    if conf.options.with_tests:
+        conf.env['WITH_TESTS'] = True
+
+    conf.check_openssl()
+
+    if conf.options.debug:
+        conf.define ('_DEBUG', 1)
+        flags = ['-O0',
+                 '-Wall',
+                 # '-Werror',
+                 '-Wno-unused-variable',
+                 '-g3',
+                 '-Wno-unused-private-field', # only clang supports
+                 '-fcolor-diagnostics',       # only clang supports
+                 '-Qunused-arguments',        # only clang supports
+                 '-Wno-tautological-compare', # suppress warnings from CryptoPP
+                 '-Wno-unused-function',      # another annoying warning from CryptoPP
+
+                 '-Wno-deprecated-declarations',
+                 ]
+
+        conf.add_supported_cxxflags (cxxflags = flags)
+    else:
+        flags = ['-O3', '-g', '-Wno-tautological-compare', '-Wno-unused-function', '-Wno-deprecated-declarations']
+        conf.add_supported_cxxflags (cxxflags = flags)
+
+    if Utils.unversioned_sys_platform () == "darwin":
+        conf.check_cxx(framework_name='CoreFoundation', uselib_store='OSX_COREFOUNDATION', mandatory=True)
+        conf.check_cxx(framework_name='CoreServices', uselib_store='OSX_CORESERVICES', mandatory=True)
+        conf.check_cxx(framework_name='Security',   uselib_store='OSX_SECURITY',   define_name='HAVE_SECURITY',
+                       use="OSX_COREFOUNDATION", mandatory=True)
+        conf.define('HAVE_OSX_SECURITY', 1)
+
+    conf.define ("PACKAGE_BUGREPORT", "ndn-lib@lists.cs.ucla.edu")
+    conf.define ("PACKAGE_NAME", NAME)
+    conf.define ("PACKAGE_VERSION", VERSION)
+    conf.define ("PACKAGE_URL", "https://github.com/named-data/ndn-cpp")
+
+    conf.check_cfg(package='sqlite3', args=['--cflags', '--libs'], uselib_store='SQLITE3', mandatory=True)
+
+    if conf.options.log4cxx:
+        conf.check_cfg(package='liblog4cxx', args=['--cflags', '--libs'], uselib_store='LOG4CXX', mandatory=True)
+        conf.define ("HAVE_LOG4CXX", 1)
+
+    conf.check_cryptopp(path=conf.options.cryptopp_dir, mandatory=True)
+
+    if conf.options.use_cxx11:
+        conf.add_supported_cxxflags(cxxflags = ['-std=c++11', '-std=c++0x'])
+
+        conf.check(msg='Checking for type std::shared_ptr',
+                   type_name="std::shared_ptr<int>", header_name="memory", define_name='HAVE_STD_SHARED_PTR')
+        conf.check(msg='Checking for type std::function',
+                   type_name="std::function<void()>", header_name="functional", define_name='HAVE_STD_FUNCTION')
+        conf.define('HAVE_CXX11', 1)
+    else:
+        if conf.options.use_system_boost:
+            USED_BOOST_LIBS = 'system filesystem date_time iostreams'
+            if conf.env['WITH_TESTS']:
+                USED_BOOST_LIBS += " unit_test_framework"
+
+            conf.check_boost(lib=USED_BOOST_LIBS)
+
+            boost_version = conf.env.BOOST_VERSION.split('_')
+            if int(boost_version[0]) > 1 or (int(boost_version[0]) == 1 and int(boost_version[1]) >= 46):
+                conf.env['USE_SYSTEM_BOOST'] = True
+                conf.define('USE_SYSTEM_BOOST', 1)
+
+    conf.write_config_header('include/ndn-cpp-dev/ndn-cpp-config.h', define_prefix='NDN_CPP_')
+
+def build (bld):
+    libndn_cpp = bld (
+        features=['cxx', 'cxxshlib', 'cxxstlib'],
+        vnum = "0.3.0",
+        target="ndn-cpp-dev",
+        name = "ndn-cpp-dev",
+        source = bld.path.ant_glob('src/**/*.cpp',
+                                   excl = ['src/**/*-osx.cpp', 'src/**/*-sqlite3.cpp']),
+        use = 'BOOST OPENSSL LOG4CXX CRYPTOPP SQLITE3',
+        includes = "include",
+        export_includes = "include",
+        )
+
+    if Utils.unversioned_sys_platform () == "darwin":
+        libndn_cpp.source += bld.path.ant_glob('src/**/*-osx.cpp')
+        libndn_cpp.mac_app = True
+        libndn_cpp.use += " OSX_COREFOUNDATION OSX_SECURITY"
+
+    # In case we want to make it optional later
+    libndn_cpp.source += bld.path.ant_glob('src/**/*-sqlite3.cpp')
+
+
+    pkgconfig_libs = []
+    pkgconfig_ldflags = []
+    pkgconfig_includes = []
+    for lib in Utils.to_list(libndn_cpp.use):
+        if bld.env['LIB_%s' % lib]:
+            pkgconfig_libs += Utils.to_list(bld.env['LIB_%s' % lib])
+        if bld.env['LIBPATH_%s' % lib]:
+            pkgconfig_ldflags += Utils.to_list(bld.env['LIBPATH_%s' % lib])
+        if bld.env['INCLUDES_%s' % lib]:
+            pkgconfig_includes += Utils.to_list(bld.env['INCLUDES_%s' % lib])
+
+    def uniq(alist):
+        set = {}
+        return [set.setdefault(e,e) for e in alist if e not in set]
+                        
+    bld (features = "subst",
+         source = "libndn-cpp-dev.pc.in",
+         target = "libndn-cpp-dev.pc",
+         install_path = "${LIBDIR}/pkgconfig",
+         VERSION = VERSION,
+
+         # This probably not the right thing to do, but to simplify life of apps
+         # that use the library
+         EXTRA_LIBS = " ".join([('-l%s' % i) for i in uniq(pkgconfig_libs)]),
+         EXTRA_LDFLAGS = " ".join([('-L%s' % i) for i in uniq(pkgconfig_ldflags)]),
+         EXTRA_INCLUDES = " ".join([('-I%s' % i) for i in uniq(pkgconfig_includes)]),
+        )
+            
+    # Unit tests
+    if bld.env['WITH_TESTS']:
+        bld.recurse('tests')
+
+    bld.recurse("tools examples")
+      
+    headers = bld.path.ant_glob(['src/**/*.hpp',
+                                 'src/**/*.h'])
+    bld.install_files("%s/ndn-cpp-dev" % bld.env['INCLUDEDIR'], headers, relative_trick=True, cwd=bld.path.find_node('src'))
+
+    bld.install_files("%s/ndn-cpp-dev" % bld.env['INCLUDEDIR'], bld.path.find_resource('include/ndn-cpp-dev/ndn-cpp-config.h'))
+
+    headers = bld.path.ant_glob(['include/**/*.hpp', 'include/**/*.h'])
+    bld.install_files("%s" % bld.env['INCLUDEDIR'], headers, relative_trick=True, cwd=bld.path.find_node('include'))
+
+@Configure.conf
+def add_supported_cxxflags(self, cxxflags):
+    """
+    Check which cxxflags are supported by compiler and add them to env.CXXFLAGS variable
+    """
+    self.start_msg('Checking allowed flags for c++ compiler')
+
+    supportedFlags = []
+    for flag in cxxflags:
+        if self.check_cxx (cxxflags=[flag], mandatory=False):
+            supportedFlags += [flag]
+
+    self.end_msg (' '.join (supportedFlags))
+    self.env.CXXFLAGS += supportedFlags
+
+# doxygen docs
+from waflib.Build import BuildContext
+class doxy (BuildContext):
+    cmd = "doxygen"
+    fun = "doxygen"
+
+def doxygen (bld):
+    if not bld.env.DOXYGEN:
+        bld.fatal ("ERROR: cannot build documentation (`doxygen' is not found in $PATH)")
+    bld (features="doxygen",
+         doxyfile='Doxyfile')
+
+# doxygen docs
+from waflib.Build import BuildContext
+class sphinx (BuildContext):
+    cmd = "sphinx"
+    fun = "sphinx"
+
+def sphinx (bld):
+    bld.load('sphinx_build', tooldir=['waf-tools'])
+
+    bld (features="sphinx",
+         outdir = "doc/html",
+         source = "doc/source/conf.py")