mirror of
https://github.com/boostorg/function_types.git
synced 2025-06-25 03:51:35 +02:00
adds function_types implementation
[SVN r36954]
This commit is contained in:
96
.gitattributes
vendored
Normal file
96
.gitattributes
vendored
Normal file
@ -0,0 +1,96 @@
|
||||
* text=auto !eol svneol=native#text/plain
|
||||
*.gitattributes text svneol=native#text/plain
|
||||
|
||||
# Scriptish formats
|
||||
*.bat text svneol=native#text/plain
|
||||
*.bsh text svneol=native#text/x-beanshell
|
||||
*.cgi text svneol=native#text/plain
|
||||
*.cmd text svneol=native#text/plain
|
||||
*.js text svneol=native#text/javascript
|
||||
*.php text svneol=native#text/x-php
|
||||
*.pl text svneol=native#text/x-perl
|
||||
*.pm text svneol=native#text/x-perl
|
||||
*.py text svneol=native#text/x-python
|
||||
*.sh eol=lf svneol=LF#text/x-sh
|
||||
configure eol=lf svneol=LF#text/x-sh
|
||||
|
||||
# Image formats
|
||||
*.bmp binary svneol=unset#image/bmp
|
||||
*.gif binary svneol=unset#image/gif
|
||||
*.ico binary svneol=unset#image/ico
|
||||
*.jpeg binary svneol=unset#image/jpeg
|
||||
*.jpg binary svneol=unset#image/jpeg
|
||||
*.png binary svneol=unset#image/png
|
||||
*.tif binary svneol=unset#image/tiff
|
||||
*.tiff binary svneol=unset#image/tiff
|
||||
*.svg text svneol=native#image/svg%2Bxml
|
||||
|
||||
# Data formats
|
||||
*.pdf binary svneol=unset#application/pdf
|
||||
*.avi binary svneol=unset#video/avi
|
||||
*.doc binary svneol=unset#application/msword
|
||||
*.dsp text svneol=crlf#text/plain
|
||||
*.dsw text svneol=crlf#text/plain
|
||||
*.eps binary svneol=unset#application/postscript
|
||||
*.gz binary svneol=unset#application/gzip
|
||||
*.mov binary svneol=unset#video/quicktime
|
||||
*.mp3 binary svneol=unset#audio/mpeg
|
||||
*.ppt binary svneol=unset#application/vnd.ms-powerpoint
|
||||
*.ps binary svneol=unset#application/postscript
|
||||
*.psd binary svneol=unset#application/photoshop
|
||||
*.rdf binary svneol=unset#text/rdf
|
||||
*.rss text svneol=unset#text/xml
|
||||
*.rtf binary svneol=unset#text/rtf
|
||||
*.sln text svneol=native#text/plain
|
||||
*.swf binary svneol=unset#application/x-shockwave-flash
|
||||
*.tgz binary svneol=unset#application/gzip
|
||||
*.vcproj text svneol=native#text/xml
|
||||
*.vcxproj text svneol=native#text/xml
|
||||
*.vsprops text svneol=native#text/xml
|
||||
*.wav binary svneol=unset#audio/wav
|
||||
*.xls binary svneol=unset#application/vnd.ms-excel
|
||||
*.zip binary svneol=unset#application/zip
|
||||
|
||||
# Text formats
|
||||
.htaccess text svneol=native#text/plain
|
||||
*.bbk text svneol=native#text/xml
|
||||
*.cmake text svneol=native#text/plain
|
||||
*.css text svneol=native#text/css
|
||||
*.dtd text svneol=native#text/xml
|
||||
*.htm text svneol=native#text/html
|
||||
*.html text svneol=native#text/html
|
||||
*.ini text svneol=native#text/plain
|
||||
*.log text svneol=native#text/plain
|
||||
*.mak text svneol=native#text/plain
|
||||
*.qbk text svneol=native#text/plain
|
||||
*.rst text svneol=native#text/plain
|
||||
*.sql text svneol=native#text/x-sql
|
||||
*.txt text svneol=native#text/plain
|
||||
*.xhtml text svneol=native#text/xhtml%2Bxml
|
||||
*.xml text svneol=native#text/xml
|
||||
*.xsd text svneol=native#text/xml
|
||||
*.xsl text svneol=native#text/xml
|
||||
*.xslt text svneol=native#text/xml
|
||||
*.xul text svneol=native#text/xul
|
||||
*.yml text svneol=native#text/plain
|
||||
boost-no-inspect text svneol=native#text/plain
|
||||
CHANGES text svneol=native#text/plain
|
||||
COPYING text svneol=native#text/plain
|
||||
INSTALL text svneol=native#text/plain
|
||||
Jamfile text svneol=native#text/plain
|
||||
Jamroot text svneol=native#text/plain
|
||||
Jamfile.v2 text svneol=native#text/plain
|
||||
Jamrules text svneol=native#text/plain
|
||||
Makefile* text svneol=native#text/plain
|
||||
README text svneol=native#text/plain
|
||||
TODO text svneol=native#text/plain
|
||||
|
||||
# Code formats
|
||||
*.c text svneol=native#text/plain
|
||||
*.cpp text svneol=native#text/plain
|
||||
*.h text svneol=native#text/plain
|
||||
*.hpp text svneol=native#text/plain
|
||||
*.ipp text svneol=native#text/plain
|
||||
*.tpp text svneol=native#text/plain
|
||||
*.jam text svneol=native#text/plain
|
||||
*.java text svneol=native#text/plain
|
425
include/boost/function_types/components.hpp
Normal file
425
include/boost/function_types/components.hpp
Normal file
@ -0,0 +1,425 @@
|
||||
|
||||
// (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 BOOST_FT_COMPONENTS_HPP_INCLUDED
|
||||
#define BOOST_FT_COMPONENTS_HPP_INCLUDED
|
||||
|
||||
#include <cstddef>
|
||||
|
||||
#include <boost/config.hpp>
|
||||
|
||||
#include <boost/detail/workaround.hpp>
|
||||
#include <boost/mpl/aux_/lambda_support.hpp>
|
||||
#include <boost/type_traits/detail/template_arity_spec.hpp>
|
||||
|
||||
#include <boost/type_traits/integral_constant.hpp>
|
||||
|
||||
#include <boost/mpl/if.hpp>
|
||||
#include <boost/mpl/integral_c.hpp>
|
||||
#include <boost/mpl/vector/vector0.hpp>
|
||||
|
||||
#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x656))
|
||||
# include <boost/type_traits/remove_cv.hpp>
|
||||
|
||||
# include <boost/mpl/identity.hpp>
|
||||
# include <boost/mpl/bitand.hpp>
|
||||
# include <boost/mpl/vector/vector10.hpp>
|
||||
# include <boost/mpl/front.hpp>
|
||||
# include <boost/mpl/begin.hpp>
|
||||
# include <boost/mpl/advance.hpp>
|
||||
# include <boost/mpl/iterator_range.hpp>
|
||||
# include <boost/mpl/joint_view.hpp>
|
||||
# include <boost/mpl/equal_to.hpp>
|
||||
# include <boost/mpl/copy.hpp>
|
||||
# include <boost/mpl/front_inserter.hpp>
|
||||
|
||||
# include <boost/function_types/detail/classifier.hpp>
|
||||
#endif
|
||||
|
||||
#ifndef BOOST_FT_NO_CV_FUNC_SUPPORT
|
||||
# include <boost/mpl/remove.hpp>
|
||||
#endif
|
||||
|
||||
#include <boost/function_types/config/config.hpp>
|
||||
|
||||
#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
||||
# if BOOST_FT_MAX_ARITY < 10
|
||||
# include <boost/mpl/vector/vector10.hpp>
|
||||
# elif BOOST_FT_MAX_ARITY < 20
|
||||
# include <boost/mpl/vector/vector20.hpp>
|
||||
# elif BOOST_FT_MAX_ARITY < 30
|
||||
# include <boost/mpl/vector/vector30.hpp>
|
||||
# elif BOOST_FT_MAX_ARITY < 40
|
||||
# include <boost/mpl/vector/vector40.hpp>
|
||||
# elif BOOST_FT_MAX_ARITY < 50
|
||||
# include <boost/mpl/vector/vector50.hpp>
|
||||
# endif
|
||||
#else
|
||||
# include <boost/function_types/detail/classifier.hpp>
|
||||
#endif
|
||||
|
||||
#include <boost/function_types/detail/class_transform.hpp>
|
||||
#include <boost/function_types/property_tags.hpp>
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
namespace boost
|
||||
{
|
||||
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 BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x565))
|
||||
template<typename T, typename OrigT, typename L> struct components_bcc;
|
||||
#endif
|
||||
}
|
||||
|
||||
template<typename T, typename ClassTypeTransform>
|
||||
struct components
|
||||
#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x565))
|
||||
: detail::components_impl<T, ClassTypeTransform>
|
||||
#else
|
||||
: detail::components_bcc<typename remove_cv<T>::type,T,
|
||||
ClassTypeTransform>
|
||||
#endif
|
||||
{
|
||||
typedef components<T,ClassTypeTransform> type;
|
||||
|
||||
BOOST_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
|
||||
>
|
||||
struct retagged_if
|
||||
: mpl::if_
|
||||
< detail::represents_impl<Components, IfTagged>
|
||||
, detail::changed_tag<Components,IfTagged,ThenTag>
|
||||
, components_non_func_base
|
||||
>::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 !BOOST_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>
|
||||
{ };
|
||||
|
||||
#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x565))
|
||||
// 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 boost::remove_cv<T>::type *, L>
|
||||
, pointer_tag, /* --> */ member_pointer_tag >
|
||||
{ };
|
||||
|
||||
// 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]; BOOST_STATIC_CONSTANT(std::size_t, value = 1); };
|
||||
template<typename T> struct encode_cv<T const *>
|
||||
{ typedef char (& type)[2]; BOOST_STATIC_CONSTANT(std::size_t, value = 2); };
|
||||
template<typename T> struct encode_cv<T volatile *>
|
||||
{ typedef char (& type)[3]; BOOST_STATIC_CONSTANT(std::size_t, value = 3); };
|
||||
template<typename T> struct encode_cv<T const volatile *>
|
||||
{ typedef char (& type)[4]; BOOST_STATIC_CONSTANT(std::size_t, value = 4); };
|
||||
|
||||
// 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
|
||||
{
|
||||
BOOST_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
|
||||
< ::boost::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
|
||||
, ::boost::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_pointer_tag>
|
||||
, detail::mfp_components<detail::components_impl<T,L>,T,OrigT,L>
|
||||
, detail::components_impl<T,L>
|
||||
>::type
|
||||
{ };
|
||||
|
||||
// TODO: add data member support for Borland
|
||||
|
||||
# define BOOST_FT_variations BOOST_FT_pointer
|
||||
#else // end of BORLAND WORKAROUND
|
||||
# define BOOST_FT_variations BOOST_FT_pointer|BOOST_FT_member_pointer
|
||||
|
||||
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 components_impl<T C::*, L>
|
||||
: 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;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
#define BOOST_FT_al_path boost/function_types/detail/components_impl
|
||||
#include <boost/function_types/detail/pp_loop.hpp>
|
||||
|
||||
} } // namespace function_types::detail
|
||||
|
||||
BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::components)
|
||||
|
||||
} // namespace ::boost
|
||||
|
||||
#include <boost/function_types/detail/components_as_mpl_sequence.hpp>
|
||||
#include <boost/function_types/detail/retag_default_cc.hpp>
|
||||
|
||||
#endif
|
||||
|
31
include/boost/function_types/config/cc_names.hpp
Normal file
31
include/boost/function_types/config/cc_names.hpp
Normal file
@ -0,0 +1,31 @@
|
||||
|
||||
// (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 BOOST_FT_CONFIG_CC_NAMES_HPP_INCLUDED
|
||||
#define BOOST_FT_CONFIG_CC_NAMES_HPP_INCLUDED
|
||||
|
||||
#define BOOST_FT_BUILTIN_CC_NAMES \
|
||||
(( IMPLICIT , implicit_cc , BOOST_PP_EMPTY ))\
|
||||
(( CDECL , cdecl_cc , BOOST_PP_IDENTITY(__cdecl ) ))\
|
||||
(( STDCALL , stdcall_cc , BOOST_PP_IDENTITY(__stdcall ) ))\
|
||||
(( PASCAL , pascal_cc , BOOST_PP_IDENTITY(pascal ) ))\
|
||||
(( FASTCALL , fastcall_cc , BOOST_PP_IDENTITY(__fastcall) ))\
|
||||
(( CLRCALL , clrcall_cc , BOOST_PP_IDENTITY(__clrcall ) ))\
|
||||
(( THISCALL , thiscall_cc , BOOST_PP_IDENTITY(__thiscall) ))\
|
||||
(( IMPLICIT_THISCALL , thiscall_cc , BOOST_PP_EMPTY ))
|
||||
|
||||
// append user-defined cc names to builtin ones
|
||||
#ifdef BOOST_FT_CC_NAMES
|
||||
# define BOOST_FT_CC_NAMES_SEQ BOOST_FT_BUILTIN_CC_NAMES BOOST_FT_CC_NAMES
|
||||
# define BOOST_FT_CC_PREPROCESSING 1
|
||||
#else
|
||||
# define BOOST_FT_CC_NAMES_SEQ BOOST_FT_BUILTIN_CC_NAMES
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
104
include/boost/function_types/config/compiler.hpp
Normal file
104
include/boost/function_types/config/compiler.hpp
Normal file
@ -0,0 +1,104 @@
|
||||
|
||||
// (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 BOOST_FT_CONFIG_COMPILER_HPP_INCLUDED
|
||||
#define BOOST_FT_CONFIG_COMPILER_HPP_INCLUDED
|
||||
|
||||
#include <boost/config.hpp>
|
||||
#include <boost/detail/workaround.hpp>
|
||||
|
||||
#if defined(BOOST_MSVC)
|
||||
|
||||
# if BOOST_MSVC < 1310
|
||||
# error "unsupported compiler version"
|
||||
# endif
|
||||
|
||||
// enable clrcall calling covention (call to .NET managed code) when
|
||||
// compiling with /clr
|
||||
# if BOOST_MSVC >= 1400 && defined(__cplusplus_cli)
|
||||
# ifndef BOOST_FT_CC_CLRCALL
|
||||
# define BOOST_FT_CC_CLRCALL callable_builtin
|
||||
# endif
|
||||
# endif
|
||||
|
||||
// Intel x86 architecture specific calling conventions
|
||||
# ifdef _M_IX86
|
||||
# define BOOST_FT_COMMON_X86_CCs callable_builtin
|
||||
# if BOOST_MSVC < 1400
|
||||
// version 7.1 is missing a keyword to specify the thiscall cc ...
|
||||
# ifndef BOOST_FT_CC_IMPLICIT_THISCALL
|
||||
# define BOOST_FT_CC_IMPLICIT_THISCALL non_variadic|member|callable_builtin
|
||||
# ifndef BOOST_FT_CONFIGURATION_OK
|
||||
# pragma message("ATTENTION: /Gd /Gr /Gz compiler options will not")
|
||||
# pragma message("ATTENTION: work with this configuration.")
|
||||
// TODO: add documentation reference
|
||||
# endif
|
||||
# endif
|
||||
# else
|
||||
// ...introduced in version 8
|
||||
# ifndef BOOST_FT_CC_THISCALL
|
||||
# define BOOST_FT_CC_THISCALL non_variadic|member|callable_builtin
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
|
||||
#elif defined(__GNUC__) && !defined(BOOST_INTEL_LINUX)
|
||||
|
||||
# if __GNUC__ < 3
|
||||
# error "unsupported compiler version"
|
||||
# endif
|
||||
|
||||
# if defined(__i386__)
|
||||
# // see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20439
|
||||
# // see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29328
|
||||
# if BOOST_WORKAROUND(__GNUC__,BOOST_TESTED_AT(4))
|
||||
# ifndef BOOST_FT_CC_IMPLICIT
|
||||
# define BOOST_FT_CC_IMPLICIT member|callable_builtin
|
||||
# endif
|
||||
# define BOOST_FT_COMMON_X86_CCs non_member|callable_builtin
|
||||
# else
|
||||
# define BOOST_FT_COMMON_X86_CCs callable_builtin
|
||||
# endif
|
||||
# else
|
||||
# ifndef BOOST_FT_CC_IMPLICIT
|
||||
# define BOOST_FT_CC_IMPLICIT callable_builtin
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# // TODO: straighten out this hack
|
||||
# ifndef __cdecl
|
||||
# define __cdecl __attribute__((__cdecl__))
|
||||
# endif
|
||||
# ifndef __stdcall
|
||||
# define __stdcall __attribute__((__stdcall__))
|
||||
# endif
|
||||
# ifndef __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
|
||||
|
||||
# define BOOST_FT_COMMON_X86_CCs callable_builtin
|
||||
|
||||
// syntactic specialities of cc specifier
|
||||
# define BOOST_FT_SYNTAX(result,lparen,cc_spec,type_mod,name,rparen) \
|
||||
result() cc_spec() lparen() type_mod() name() rparen()
|
||||
#else
|
||||
// only enable default calling convention
|
||||
# define BOOST_FT_CC_IMPLICIT callable_builtin
|
||||
#endif
|
||||
|
||||
|
||||
#endif
|
||||
|
59
include/boost/function_types/config/config.hpp
Normal file
59
include/boost/function_types/config/config.hpp
Normal file
@ -0,0 +1,59 @@
|
||||
|
||||
// (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 BOOST_FT_CONFIG_HPP_INCLUDED
|
||||
#define BOOST_FT_CONFIG_HPP_INCLUDED
|
||||
|
||||
#include <boost/function_types/config/compiler.hpp>
|
||||
#include <boost/function_types/config/cc_names.hpp>
|
||||
|
||||
// maximum allowed arity
|
||||
#ifndef BOOST_FT_MAX_ARITY
|
||||
#define BOOST_FT_MAX_ARITY 20
|
||||
#endif
|
||||
|
||||
// the most common calling conventions for x86 architecture can be enabled at
|
||||
// once in the compiler config
|
||||
#ifdef BOOST_FT_COMMON_X86_CCs
|
||||
# ifndef BOOST_FT_CC_CDECL
|
||||
# define BOOST_FT_CC_CDECL BOOST_FT_COMMON_X86_CCs
|
||||
# endif
|
||||
# ifndef BOOST_FT_CC_STDCALL
|
||||
# define BOOST_FT_CC_STDCALL non_variadic|BOOST_FT_COMMON_X86_CCs
|
||||
# endif
|
||||
# ifndef BOOST_FT_CC_FASTCALL
|
||||
# define BOOST_FT_CC_FASTCALL non_variadic|BOOST_FT_COMMON_X86_CCs
|
||||
# endif
|
||||
#endif
|
||||
|
||||
// where to place the cc specifier (the common way)
|
||||
#ifndef BOOST_FT_SYNTAX
|
||||
# define BOOST_FT_SYNTAX(result,lparen,cc_spec,type_mod,name,rparen) \
|
||||
result() lparen() cc_spec() type_mod() name() rparen()
|
||||
#endif
|
||||
|
||||
// param for nullary functions
|
||||
// set to "void" for compilers that require nullary functions to read
|
||||
// "R (void)" in template partial specialization
|
||||
#ifndef BOOST_FT_NULLARY_PARAM
|
||||
#define BOOST_FT_NULLARY_PARAM
|
||||
#endif
|
||||
|
||||
// there is a pending defect report on cv qualified function types, so support
|
||||
// for these types is disabled, unless for compilers where it's known to work
|
||||
#ifndef BOOST_FT_NO_CV_FUNC_SUPPORT
|
||||
#define BOOST_FT_NO_CV_FUNC_SUPPORT 1
|
||||
#endif
|
||||
|
||||
// full preprocessing implies preprocessing of the ccs
|
||||
#if defined(BOOST_FT_PREPROCESSING_MODE) && !defined(BOOST_FT_CC_PREPROCESSING)
|
||||
# define BOOST_FT_CC_PREPROCESSING 1
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
62
include/boost/function_types/detail/class_transform.hpp
Normal file
62
include/boost/function_types/detail/class_transform.hpp
Normal file
@ -0,0 +1,62 @@
|
||||
|
||||
// (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 BOOST_FT_DETAIL_CLASS_TRANSFORM_HPP_INCLUDED
|
||||
#define BOOST_FT_DETAIL_CLASS_TRANSFORM_HPP_INCLUDED
|
||||
|
||||
#include <boost/mpl/apply.hpp>
|
||||
#include <boost/mpl/always.hpp>
|
||||
#include <boost/mpl/identity.hpp>
|
||||
#include <boost/mpl/placeholders.hpp>
|
||||
|
||||
#include <boost/type_traits/remove_cv.hpp>
|
||||
#include <boost/type_traits/add_pointer.hpp>
|
||||
#include <boost/type_traits/add_reference.hpp>
|
||||
|
||||
namespace boost { 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 BOOST_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 boost::remove_cv<T>::type type; };
|
||||
|
||||
template<typename T> struct class_transform< T, add_reference< remove_cv<_> > >
|
||||
{ typedef typename boost::remove_cv<T>::type & type; };
|
||||
|
||||
template<typename T> struct class_transform< T, add_pointer< remove_cv<_> > >
|
||||
{ typedef typename boost::remove_cv<T>::type * type; };
|
||||
|
||||
template<typename T, typename U> struct class_transform< T, mpl::always<U> >
|
||||
{ typedef U type; };
|
||||
#endif
|
||||
|
||||
|
||||
} } } // namespace ::boost::function_types::detail
|
||||
|
||||
#endif
|
||||
|
82
include/boost/function_types/detail/classifier.hpp
Normal file
82
include/boost/function_types/detail/classifier.hpp
Normal file
@ -0,0 +1,82 @@
|
||||
|
||||
// (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 BOOST_FT_DETAIL_CLASSIFIER_HPP_INCLUDED
|
||||
#define BOOST_FT_DETAIL_CLASSIFIER_HPP_INCLUDED
|
||||
|
||||
#include <boost/type.hpp>
|
||||
#include <boost/config.hpp>
|
||||
#include <boost/type_traits/config.hpp>
|
||||
#include <boost/type_traits/is_reference.hpp>
|
||||
#include <boost/type_traits/add_reference.hpp>
|
||||
|
||||
#include <boost/function_types/config/config.hpp>
|
||||
#include <boost/function_types/property_tags.hpp>
|
||||
|
||||
namespace boost { 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<
|
||||
::boost::function_types::detail::encode_charr_impl<Flags,CCID,Arity>::value
|
||||
>::type type;
|
||||
};
|
||||
|
||||
char BOOST_TT_DECL classifier_impl(...);
|
||||
|
||||
#define BOOST_FT_variations BOOST_FT_function|BOOST_FT_pointer|\
|
||||
BOOST_FT_member_pointer
|
||||
|
||||
#define BOOST_FT_type_function(cc,name) BOOST_FT_SYNTAX( \
|
||||
R BOOST_PP_EMPTY,BOOST_PP_LPAREN,cc,* BOOST_PP_EMPTY,name,BOOST_PP_RPAREN)
|
||||
|
||||
#define BOOST_FT_type_function_pointer(cc,name) BOOST_FT_SYNTAX( \
|
||||
R BOOST_PP_EMPTY,BOOST_PP_LPAREN,cc,** BOOST_PP_EMPTY,name,BOOST_PP_RPAREN)
|
||||
|
||||
#define BOOST_FT_type_member_function_pointer(cc,name) BOOST_FT_SYNTAX( \
|
||||
R BOOST_PP_EMPTY,BOOST_PP_LPAREN,cc,T0::** BOOST_PP_EMPTY,name,BOOST_PP_RPAREN)
|
||||
|
||||
#define BOOST_FT_al_path boost/function_types/detail/classifier_impl
|
||||
#include <boost/function_types/detail/pp_loop.hpp>
|
||||
|
||||
template<typename T> struct classifier_bits
|
||||
{
|
||||
static typename boost::add_reference<T>::type tester;
|
||||
|
||||
BOOST_STATIC_CONSTANT(bits_t,value = (bits_t)sizeof(
|
||||
boost::function_types::detail::classifier_impl(& tester)
|
||||
)-1);
|
||||
};
|
||||
|
||||
template<typename T> struct classifier
|
||||
{
|
||||
typedef detail::constant<
|
||||
::boost::function_types::detail::decode_bits<
|
||||
::boost::function_types::detail::classifier_bits<T>::value
|
||||
>::tag_bits >
|
||||
bits;
|
||||
|
||||
typedef detail::full_mask mask;
|
||||
|
||||
typedef detail::constant<
|
||||
::boost::function_types::detail::decode_bits<
|
||||
::boost::function_types::detail::classifier_bits<T>::value
|
||||
>::arity >
|
||||
function_arity;
|
||||
};
|
||||
|
||||
|
||||
|
||||
} } } // namespace ::boost::function_types::detail
|
||||
|
||||
#endif
|
||||
|
@ -0,0 +1,55 @@
|
||||
|
||||
// (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: BOOST_FT_syntax type macro to use
|
||||
// input: BOOST_FT_cc empty or cc specifier
|
||||
// input: BOOST_FT_ell empty or "..."
|
||||
// input: BOOST_FT_cv empty or cv qualifiers
|
||||
// input: BOOST_FT_flags single decimal integer encoding the flags
|
||||
// output: BOOST_FT_n number of component types (arity+1)
|
||||
// output: BOOST_FT_arity current arity
|
||||
// output: BOOST_FT_type macro that expands to the type
|
||||
// output: BOOST_FT_tplargs(p) template arguments with given prefix
|
||||
// output: BOOST_FT_params(p) parameters with given prefix
|
||||
|
||||
template< typename R >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,0> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (BOOST_FT_nullary_param BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,1> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,2> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,3> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,4> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,5> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,6> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,7> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,8> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,9> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,10> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 BOOST_FT_ell) BOOST_FT_cv);
|
||||
|
@ -0,0 +1,52 @@
|
||||
|
||||
// (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: BOOST_FT_syntax type macro to use
|
||||
// input: BOOST_FT_cc empty or cc specifier
|
||||
// input: BOOST_FT_ell empty or "..."
|
||||
// input: BOOST_FT_cv empty or cv qualifiers
|
||||
// input: BOOST_FT_flags single decimal integer encoding the flags
|
||||
// output: BOOST_FT_n number of component types (arity+1)
|
||||
// output: BOOST_FT_arity current arity
|
||||
// output: BOOST_FT_type macro that expands to the type
|
||||
// output: BOOST_FT_tplargs(p) template arguments with given prefix
|
||||
// output: BOOST_FT_params(p) parameters with given prefix
|
||||
|
||||
template< typename R , typename T0 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,1> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) ( BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,2> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,3> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,4> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,5> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,6> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,7> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,8> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,9> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,10> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 BOOST_FT_ell) BOOST_FT_cv);
|
||||
|
@ -0,0 +1,53 @@
|
||||
|
||||
// (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: BOOST_FT_syntax type macro to use
|
||||
// input: BOOST_FT_cc empty or cc specifier
|
||||
// input: BOOST_FT_ell empty or "..."
|
||||
// input: BOOST_FT_cv empty or cv qualifiers
|
||||
// input: BOOST_FT_flags single decimal integer encoding the flags
|
||||
// output: BOOST_FT_n number of component types (arity+1)
|
||||
// output: BOOST_FT_arity current arity
|
||||
// output: BOOST_FT_type macro that expands to the type
|
||||
// output: BOOST_FT_tplargs(p) template arguments with given prefix
|
||||
// output: BOOST_FT_params(p) parameters with given prefix
|
||||
|
||||
# include <boost/function_types/detail/classifier_impl/arity10_0.hpp>
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,11> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,12> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,13> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,14> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,15> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,16> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,17> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,18> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,19> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,20> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 BOOST_FT_ell) BOOST_FT_cv);
|
||||
|
@ -0,0 +1,53 @@
|
||||
|
||||
// (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: BOOST_FT_syntax type macro to use
|
||||
// input: BOOST_FT_cc empty or cc specifier
|
||||
// input: BOOST_FT_ell empty or "..."
|
||||
// input: BOOST_FT_cv empty or cv qualifiers
|
||||
// input: BOOST_FT_flags single decimal integer encoding the flags
|
||||
// output: BOOST_FT_n number of component types (arity+1)
|
||||
// output: BOOST_FT_arity current arity
|
||||
// output: BOOST_FT_type macro that expands to the type
|
||||
// output: BOOST_FT_tplargs(p) template arguments with given prefix
|
||||
// output: BOOST_FT_params(p) parameters with given prefix
|
||||
|
||||
# include <boost/function_types/detail/classifier_impl/arity10_1.hpp>
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,11> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,12> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,13> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,14> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,15> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,16> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,17> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,18> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,19> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,20> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 BOOST_FT_ell) BOOST_FT_cv);
|
||||
|
@ -0,0 +1,53 @@
|
||||
|
||||
// (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: BOOST_FT_syntax type macro to use
|
||||
// input: BOOST_FT_cc empty or cc specifier
|
||||
// input: BOOST_FT_ell empty or "..."
|
||||
// input: BOOST_FT_cv empty or cv qualifiers
|
||||
// input: BOOST_FT_flags single decimal integer encoding the flags
|
||||
// output: BOOST_FT_n number of component types (arity+1)
|
||||
// output: BOOST_FT_arity current arity
|
||||
// output: BOOST_FT_type macro that expands to the type
|
||||
// output: BOOST_FT_tplargs(p) template arguments with given prefix
|
||||
// output: BOOST_FT_params(p) parameters with given prefix
|
||||
|
||||
# include <boost/function_types/detail/classifier_impl/arity20_0.hpp>
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,21> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,22> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,23> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,24> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,25> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,26> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,27> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,28> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,29> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,30> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 BOOST_FT_ell) BOOST_FT_cv);
|
||||
|
@ -0,0 +1,53 @@
|
||||
|
||||
// (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: BOOST_FT_syntax type macro to use
|
||||
// input: BOOST_FT_cc empty or cc specifier
|
||||
// input: BOOST_FT_ell empty or "..."
|
||||
// input: BOOST_FT_cv empty or cv qualifiers
|
||||
// input: BOOST_FT_flags single decimal integer encoding the flags
|
||||
// output: BOOST_FT_n number of component types (arity+1)
|
||||
// output: BOOST_FT_arity current arity
|
||||
// output: BOOST_FT_type macro that expands to the type
|
||||
// output: BOOST_FT_tplargs(p) template arguments with given prefix
|
||||
// output: BOOST_FT_params(p) parameters with given prefix
|
||||
|
||||
# include <boost/function_types/detail/classifier_impl/arity20_1.hpp>
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,21> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,22> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,23> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,24> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,25> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,26> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,27> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,28> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,29> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,30> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 BOOST_FT_ell) BOOST_FT_cv);
|
||||
|
@ -0,0 +1,53 @@
|
||||
|
||||
// (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: BOOST_FT_syntax type macro to use
|
||||
// input: BOOST_FT_cc empty or cc specifier
|
||||
// input: BOOST_FT_ell empty or "..."
|
||||
// input: BOOST_FT_cv empty or cv qualifiers
|
||||
// input: BOOST_FT_flags single decimal integer encoding the flags
|
||||
// output: BOOST_FT_n number of component types (arity+1)
|
||||
// output: BOOST_FT_arity current arity
|
||||
// output: BOOST_FT_type macro that expands to the type
|
||||
// output: BOOST_FT_tplargs(p) template arguments with given prefix
|
||||
// output: BOOST_FT_params(p) parameters with given prefix
|
||||
|
||||
# include <boost/function_types/detail/classifier_impl/arity30_0.hpp>
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,31> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,32> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,33> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,34> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,35> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,36> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,37> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,38> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,39> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,40> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 BOOST_FT_ell) BOOST_FT_cv);
|
||||
|
@ -0,0 +1,53 @@
|
||||
|
||||
// (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: BOOST_FT_syntax type macro to use
|
||||
// input: BOOST_FT_cc empty or cc specifier
|
||||
// input: BOOST_FT_ell empty or "..."
|
||||
// input: BOOST_FT_cv empty or cv qualifiers
|
||||
// input: BOOST_FT_flags single decimal integer encoding the flags
|
||||
// output: BOOST_FT_n number of component types (arity+1)
|
||||
// output: BOOST_FT_arity current arity
|
||||
// output: BOOST_FT_type macro that expands to the type
|
||||
// output: BOOST_FT_tplargs(p) template arguments with given prefix
|
||||
// output: BOOST_FT_params(p) parameters with given prefix
|
||||
|
||||
# include <boost/function_types/detail/classifier_impl/arity30_1.hpp>
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,31> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,32> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,33> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,34> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,35> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,36> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,37> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,38> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,39> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,40> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 BOOST_FT_ell) BOOST_FT_cv);
|
||||
|
@ -0,0 +1,53 @@
|
||||
|
||||
// (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: BOOST_FT_syntax type macro to use
|
||||
// input: BOOST_FT_cc empty or cc specifier
|
||||
// input: BOOST_FT_ell empty or "..."
|
||||
// input: BOOST_FT_cv empty or cv qualifiers
|
||||
// input: BOOST_FT_flags single decimal integer encoding the flags
|
||||
// output: BOOST_FT_n number of component types (arity+1)
|
||||
// output: BOOST_FT_arity current arity
|
||||
// output: BOOST_FT_type macro that expands to the type
|
||||
// output: BOOST_FT_tplargs(p) template arguments with given prefix
|
||||
// output: BOOST_FT_params(p) parameters with given prefix
|
||||
|
||||
# include <boost/function_types/detail/classifier_impl/arity40_0.hpp>
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,41> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,42> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,43> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,44> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,45> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,46> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,47> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,48> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47 , typename T48 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,49> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47 , typename T48 , typename T49 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,50> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49 BOOST_FT_ell) BOOST_FT_cv);
|
||||
|
@ -0,0 +1,52 @@
|
||||
|
||||
// (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: BOOST_FT_syntax type macro to use
|
||||
// input: BOOST_FT_cc empty or cc specifier
|
||||
// input: BOOST_FT_ell empty or "..."
|
||||
// input: BOOST_FT_cv empty or cv qualifiers
|
||||
// input: BOOST_FT_flags single decimal integer encoding the flags
|
||||
// output: BOOST_FT_n number of component types (arity+1)
|
||||
// output: BOOST_FT_arity current arity
|
||||
// output: BOOST_FT_type macro that expands to the type
|
||||
// output: BOOST_FT_tplargs(p) template arguments with given prefix
|
||||
// output: BOOST_FT_params(p) parameters with given prefix
|
||||
|
||||
# include <boost/function_types/detail/classifier_impl/arity40_1.hpp>
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,41> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,42> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,43> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,44> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,45> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,46> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,47> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,48> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47 , typename T48 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,49> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 BOOST_FT_ell) BOOST_FT_cv);
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47 , typename T48 , typename T49 >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,50> ::type
|
||||
classifier_impl(BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49 BOOST_FT_ell) BOOST_FT_cv);
|
@ -0,0 +1,33 @@
|
||||
|
||||
// (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 BOOST_FT_ARITY_LOOP_PREFIX
|
||||
|
||||
# ifndef BOOST_FT_DETAIL_CLASSIFIER_IMPL_MASTER_HPP_INCLUDED
|
||||
# define BOOST_FT_DETAIL_CLASSIFIER_IMPL_MASTER_HPP_INCLUDED
|
||||
# include <boost/preprocessor/facilities/identity.hpp>
|
||||
# endif
|
||||
|
||||
# define BOOST_FT_type_name
|
||||
|
||||
#elif BOOST_FT_ARITY_LOOP_IS_ITERATING
|
||||
|
||||
template< BOOST_FT_tplargs(BOOST_PP_IDENTITY(typename)) >
|
||||
typename encode_charr<BOOST_FT_flags,BOOST_FT_cc_id,BOOST_FT_arity>::type
|
||||
classifier_impl(BOOST_FT_type);
|
||||
|
||||
#elif BOOST_FT_ARITY_LOOP_SUFFIX
|
||||
|
||||
# undef BOOST_FT_type_name
|
||||
|
||||
#else
|
||||
# error "attempt to use arity loop master file without loop"
|
||||
#endif
|
||||
|
@ -0,0 +1,138 @@
|
||||
|
||||
// (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 BOOST_FT_DETAIL_COMPONENTS_AS_MPL_SEQUENCE_HPP_INCLUDED
|
||||
#define BOOST_FT_DETAIL_COMPONENTS_AS_MPL_SEQUENCE_HPP_INCLUDED
|
||||
|
||||
#include <boost/mpl/size_fwd.hpp>
|
||||
#include <boost/mpl/empty_fwd.hpp>
|
||||
#include <boost/mpl/front_fwd.hpp>
|
||||
#include <boost/mpl/back_fwd.hpp>
|
||||
#include <boost/mpl/at_fwd.hpp>
|
||||
#include <boost/mpl/begin_end_fwd.hpp>
|
||||
#include <boost/mpl/clear_fwd.hpp>
|
||||
#include <boost/mpl/push_front_fwd.hpp>
|
||||
#include <boost/mpl/pop_front_fwd.hpp>
|
||||
#include <boost/mpl/push_back_fwd.hpp>
|
||||
#include <boost/mpl/pop_back_fwd.hpp>
|
||||
|
||||
namespace boost { 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 ::boost::mpl
|
||||
|
||||
#endif
|
||||
|
@ -0,0 +1,132 @@
|
||||
|
||||
// (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: BOOST_FT_syntax type macro to use
|
||||
// input: BOOST_FT_cc empty or cc specifier
|
||||
// input: BOOST_FT_ell empty or "..."
|
||||
// input: BOOST_FT_cv empty or cv qualifiers
|
||||
// input: BOOST_FT_flags single decimal integer encoding the flags
|
||||
// output: BOOST_FT_n number of component types (arity+1)
|
||||
// output: BOOST_FT_arity current arity
|
||||
// output: BOOST_FT_type macro that expands to the type
|
||||
// output: BOOST_FT_tplargs(p) template arguments with given prefix
|
||||
// output: BOOST_FT_params(p) parameters with given prefix
|
||||
|
||||
template< typename R, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (BOOST_FT_nullary_param BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (BOOST_FT_nullary_param BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,0> function_arity;
|
||||
typedef mpl::vector1< R BOOST_FT_nullary_param > types;
|
||||
};
|
||||
template< typename R , typename T0, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,1> function_arity;
|
||||
typedef mpl::vector2< R , T0 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,2> function_arity;
|
||||
typedef mpl::vector3< R , T0 , T1 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,3> function_arity;
|
||||
typedef mpl::vector4< R , T0 , T1 , T2 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,4> function_arity;
|
||||
typedef mpl::vector5< R , T0 , T1 , T2 , T3 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,5> function_arity;
|
||||
typedef mpl::vector6< R , T0 , T1 , T2 , T3 , T4 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,6> function_arity;
|
||||
typedef mpl::vector7< R , T0 , T1 , T2 , T3 , T4 , T5 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,7> function_arity;
|
||||
typedef mpl::vector8< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,8> function_arity;
|
||||
typedef mpl::vector9< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,9> function_arity;
|
||||
typedef mpl::vector10< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef 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;
|
||||
};
|
||||
|
@ -0,0 +1,122 @@
|
||||
|
||||
// (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: BOOST_FT_syntax type macro to use
|
||||
// input: BOOST_FT_cc empty or cc specifier
|
||||
// input: BOOST_FT_ell empty or "..."
|
||||
// input: BOOST_FT_cv empty or cv qualifiers
|
||||
// input: BOOST_FT_flags single decimal integer encoding the flags
|
||||
// output: BOOST_FT_n number of component types (arity+1)
|
||||
// output: BOOST_FT_arity current arity
|
||||
// output: BOOST_FT_type macro that expands to the type
|
||||
// output: BOOST_FT_tplargs(p) template arguments with given prefix
|
||||
// output: BOOST_FT_params(p) parameters with given prefix
|
||||
|
||||
template< typename R , typename T0, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) ( BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) ( BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,1> function_arity;
|
||||
typedef mpl::vector2< R, typename class_transform<T0 BOOST_FT_cv, L> ::type > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,2> function_arity;
|
||||
typedef mpl::vector3< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,3> function_arity;
|
||||
typedef mpl::vector4< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,4> function_arity;
|
||||
typedef mpl::vector5< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,5> function_arity;
|
||||
typedef mpl::vector6< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,6> function_arity;
|
||||
typedef mpl::vector7< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,7> function_arity;
|
||||
typedef mpl::vector8< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,8> function_arity;
|
||||
typedef mpl::vector9< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,9> function_arity;
|
||||
typedef mpl::vector10< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,10> function_arity;
|
||||
typedef mpl::vector11< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 > types;
|
||||
};
|
||||
|
@ -0,0 +1,123 @@
|
||||
|
||||
// (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: BOOST_FT_syntax type macro to use
|
||||
// input: BOOST_FT_cc empty or cc specifier
|
||||
// input: BOOST_FT_ell empty or "..."
|
||||
// input: BOOST_FT_cv empty or cv qualifiers
|
||||
// input: BOOST_FT_flags single decimal integer encoding the flags
|
||||
// output: BOOST_FT_n number of component types (arity+1)
|
||||
// output: BOOST_FT_arity current arity
|
||||
// output: BOOST_FT_type macro that expands to the type
|
||||
// output: BOOST_FT_tplargs(p) template arguments with given prefix
|
||||
// output: BOOST_FT_params(p) parameters with given prefix
|
||||
|
||||
# include <boost/function_types/detail/components_impl/arity10_0.hpp>
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,11> function_arity;
|
||||
typedef mpl::vector12< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,12> function_arity;
|
||||
typedef mpl::vector13< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,13> function_arity;
|
||||
typedef mpl::vector14< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,14> function_arity;
|
||||
typedef mpl::vector15< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,15> function_arity;
|
||||
typedef mpl::vector16< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,16> function_arity;
|
||||
typedef mpl::vector17< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,17> function_arity;
|
||||
typedef mpl::vector18< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,18> function_arity;
|
||||
typedef mpl::vector19< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,19> function_arity;
|
||||
typedef mpl::vector20< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef 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;
|
||||
};
|
||||
|
@ -0,0 +1,123 @@
|
||||
|
||||
// (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: BOOST_FT_syntax type macro to use
|
||||
// input: BOOST_FT_cc empty or cc specifier
|
||||
// input: BOOST_FT_ell empty or "..."
|
||||
// input: BOOST_FT_cv empty or cv qualifiers
|
||||
// input: BOOST_FT_flags single decimal integer encoding the flags
|
||||
// output: BOOST_FT_n number of component types (arity+1)
|
||||
// output: BOOST_FT_arity current arity
|
||||
// output: BOOST_FT_type macro that expands to the type
|
||||
// output: BOOST_FT_tplargs(p) template arguments with given prefix
|
||||
// output: BOOST_FT_params(p) parameters with given prefix
|
||||
|
||||
# include <boost/function_types/detail/components_impl/arity10_1.hpp>
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,11> function_arity;
|
||||
typedef mpl::vector12< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,12> function_arity;
|
||||
typedef mpl::vector13< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,13> function_arity;
|
||||
typedef mpl::vector14< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,14> function_arity;
|
||||
typedef mpl::vector15< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,15> function_arity;
|
||||
typedef mpl::vector16< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,16> function_arity;
|
||||
typedef mpl::vector17< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,17> function_arity;
|
||||
typedef mpl::vector18< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,18> function_arity;
|
||||
typedef mpl::vector19< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,19> function_arity;
|
||||
typedef mpl::vector20< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,20> function_arity;
|
||||
typedef mpl::vector21< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 > types;
|
||||
};
|
||||
|
@ -0,0 +1,123 @@
|
||||
|
||||
// (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: BOOST_FT_syntax type macro to use
|
||||
// input: BOOST_FT_cc empty or cc specifier
|
||||
// input: BOOST_FT_ell empty or "..."
|
||||
// input: BOOST_FT_cv empty or cv qualifiers
|
||||
// input: BOOST_FT_flags single decimal integer encoding the flags
|
||||
// output: BOOST_FT_n number of component types (arity+1)
|
||||
// output: BOOST_FT_arity current arity
|
||||
// output: BOOST_FT_type macro that expands to the type
|
||||
// output: BOOST_FT_tplargs(p) template arguments with given prefix
|
||||
// output: BOOST_FT_params(p) parameters with given prefix
|
||||
|
||||
# include <boost/function_types/detail/components_impl/arity20_0.hpp>
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,21> function_arity;
|
||||
typedef mpl::vector22< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,22> function_arity;
|
||||
typedef mpl::vector23< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,23> function_arity;
|
||||
typedef mpl::vector24< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,24> function_arity;
|
||||
typedef mpl::vector25< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,25> function_arity;
|
||||
typedef mpl::vector26< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,26> function_arity;
|
||||
typedef mpl::vector27< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,27> function_arity;
|
||||
typedef mpl::vector28< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,28> function_arity;
|
||||
typedef mpl::vector29< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,29> function_arity;
|
||||
typedef mpl::vector30< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef 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;
|
||||
};
|
||||
|
@ -0,0 +1,123 @@
|
||||
|
||||
// (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: BOOST_FT_syntax type macro to use
|
||||
// input: BOOST_FT_cc empty or cc specifier
|
||||
// input: BOOST_FT_ell empty or "..."
|
||||
// input: BOOST_FT_cv empty or cv qualifiers
|
||||
// input: BOOST_FT_flags single decimal integer encoding the flags
|
||||
// output: BOOST_FT_n number of component types (arity+1)
|
||||
// output: BOOST_FT_arity current arity
|
||||
// output: BOOST_FT_type macro that expands to the type
|
||||
// output: BOOST_FT_tplargs(p) template arguments with given prefix
|
||||
// output: BOOST_FT_params(p) parameters with given prefix
|
||||
|
||||
# include <boost/function_types/detail/components_impl/arity20_1.hpp>
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,21> function_arity;
|
||||
typedef mpl::vector22< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,22> function_arity;
|
||||
typedef mpl::vector23< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,23> function_arity;
|
||||
typedef mpl::vector24< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,24> function_arity;
|
||||
typedef mpl::vector25< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,25> function_arity;
|
||||
typedef mpl::vector26< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,26> function_arity;
|
||||
typedef mpl::vector27< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,27> function_arity;
|
||||
typedef mpl::vector28< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,28> function_arity;
|
||||
typedef mpl::vector29< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,29> function_arity;
|
||||
typedef mpl::vector30< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,30> function_arity;
|
||||
typedef mpl::vector31< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 > types;
|
||||
};
|
||||
|
@ -0,0 +1,123 @@
|
||||
|
||||
// (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: BOOST_FT_syntax type macro to use
|
||||
// input: BOOST_FT_cc empty or cc specifier
|
||||
// input: BOOST_FT_ell empty or "..."
|
||||
// input: BOOST_FT_cv empty or cv qualifiers
|
||||
// input: BOOST_FT_flags single decimal integer encoding the flags
|
||||
// output: BOOST_FT_n number of component types (arity+1)
|
||||
// output: BOOST_FT_arity current arity
|
||||
// output: BOOST_FT_type macro that expands to the type
|
||||
// output: BOOST_FT_tplargs(p) template arguments with given prefix
|
||||
// output: BOOST_FT_params(p) parameters with given prefix
|
||||
|
||||
# include <boost/function_types/detail/components_impl/arity30_0.hpp>
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,31> function_arity;
|
||||
typedef mpl::vector32< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,32> function_arity;
|
||||
typedef mpl::vector33< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,33> function_arity;
|
||||
typedef mpl::vector34< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,34> function_arity;
|
||||
typedef mpl::vector35< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,35> function_arity;
|
||||
typedef mpl::vector36< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,36> function_arity;
|
||||
typedef mpl::vector37< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,37> function_arity;
|
||||
typedef mpl::vector38< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,38> function_arity;
|
||||
typedef mpl::vector39< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,39> function_arity;
|
||||
typedef mpl::vector40< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef 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;
|
||||
};
|
||||
|
@ -0,0 +1,123 @@
|
||||
|
||||
// (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: BOOST_FT_syntax type macro to use
|
||||
// input: BOOST_FT_cc empty or cc specifier
|
||||
// input: BOOST_FT_ell empty or "..."
|
||||
// input: BOOST_FT_cv empty or cv qualifiers
|
||||
// input: BOOST_FT_flags single decimal integer encoding the flags
|
||||
// output: BOOST_FT_n number of component types (arity+1)
|
||||
// output: BOOST_FT_arity current arity
|
||||
// output: BOOST_FT_type macro that expands to the type
|
||||
// output: BOOST_FT_tplargs(p) template arguments with given prefix
|
||||
// output: BOOST_FT_params(p) parameters with given prefix
|
||||
|
||||
# include <boost/function_types/detail/components_impl/arity30_1.hpp>
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,31> function_arity;
|
||||
typedef mpl::vector32< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,32> function_arity;
|
||||
typedef mpl::vector33< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,33> function_arity;
|
||||
typedef mpl::vector34< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,34> function_arity;
|
||||
typedef mpl::vector35< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,35> function_arity;
|
||||
typedef mpl::vector36< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,36> function_arity;
|
||||
typedef mpl::vector37< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,37> function_arity;
|
||||
typedef mpl::vector38< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,38> function_arity;
|
||||
typedef mpl::vector39< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,39> function_arity;
|
||||
typedef mpl::vector40< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,40> function_arity;
|
||||
typedef mpl::vector41< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 > types;
|
||||
};
|
||||
|
@ -0,0 +1,123 @@
|
||||
|
||||
// (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: BOOST_FT_syntax type macro to use
|
||||
// input: BOOST_FT_cc empty or cc specifier
|
||||
// input: BOOST_FT_ell empty or "..."
|
||||
// input: BOOST_FT_cv empty or cv qualifiers
|
||||
// input: BOOST_FT_flags single decimal integer encoding the flags
|
||||
// output: BOOST_FT_n number of component types (arity+1)
|
||||
// output: BOOST_FT_arity current arity
|
||||
// output: BOOST_FT_type macro that expands to the type
|
||||
// output: BOOST_FT_tplargs(p) template arguments with given prefix
|
||||
// output: BOOST_FT_params(p) parameters with given prefix
|
||||
|
||||
# include <boost/function_types/detail/components_impl/arity40_0.hpp>
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,41> function_arity;
|
||||
typedef mpl::vector42< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,42> function_arity;
|
||||
typedef mpl::vector43< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,43> function_arity;
|
||||
typedef mpl::vector44< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,44> function_arity;
|
||||
typedef mpl::vector45< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,45> function_arity;
|
||||
typedef mpl::vector46< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,46> function_arity;
|
||||
typedef mpl::vector47< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,47> function_arity;
|
||||
typedef mpl::vector48< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,48> function_arity;
|
||||
typedef mpl::vector49< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47 , typename T48, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,49> function_arity;
|
||||
typedef mpl::vector50< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47 , typename T48 , typename T49, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef 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;
|
||||
};
|
||||
|
@ -0,0 +1,123 @@
|
||||
|
||||
// (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: BOOST_FT_syntax type macro to use
|
||||
// input: BOOST_FT_cc empty or cc specifier
|
||||
// input: BOOST_FT_ell empty or "..."
|
||||
// input: BOOST_FT_cv empty or cv qualifiers
|
||||
// input: BOOST_FT_flags single decimal integer encoding the flags
|
||||
// output: BOOST_FT_n number of component types (arity+1)
|
||||
// output: BOOST_FT_arity current arity
|
||||
// output: BOOST_FT_type macro that expands to the type
|
||||
// output: BOOST_FT_tplargs(p) template arguments with given prefix
|
||||
// output: BOOST_FT_params(p) parameters with given prefix
|
||||
|
||||
# include <boost/function_types/detail/components_impl/arity40_1.hpp>
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,41> function_arity;
|
||||
typedef mpl::vector42< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,42> function_arity;
|
||||
typedef mpl::vector43< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,43> function_arity;
|
||||
typedef mpl::vector44< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,44> function_arity;
|
||||
typedef mpl::vector45< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,45> function_arity;
|
||||
typedef mpl::vector46< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,46> function_arity;
|
||||
typedef mpl::vector47< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,47> function_arity;
|
||||
typedef mpl::vector48< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,48> function_arity;
|
||||
typedef mpl::vector49< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47 , typename T48, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,49> function_arity;
|
||||
typedef mpl::vector50< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 > types;
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47 , typename T48 , typename T49, typename L>
|
||||
struct components_impl<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49 BOOST_FT_ell) BOOST_FT_cv, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
typedef function_types::components<BOOST_FT_syntax(BOOST_FT_cc, BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49 BOOST_FT_ell) BOOST_FT_cv, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
typedef mpl::integral_c<std::size_t,50> function_arity;
|
||||
typedef mpl::vector51< R, typename class_transform<T0 BOOST_FT_cv, L> ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49 > types;
|
||||
};
|
||||
|
@ -0,0 +1,61 @@
|
||||
|
||||
// (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 BOOST_FT_ARITY_LOOP_PREFIX
|
||||
|
||||
# ifndef BOOST_FT_DETAIL_COMPONENTS_IMPL_MASTER_HPP_INCLUDED
|
||||
# define BOOST_FT_DETAIL_COMPONENTS_IMPL_MASTER_HPP_INCLUDED
|
||||
# include <boost/preprocessor/cat.hpp>
|
||||
# include <boost/preprocessor/facilities/empty.hpp>
|
||||
# include <boost/preprocessor/facilities/identity.hpp>
|
||||
# include <boost/preprocessor/arithmetic/dec.hpp>
|
||||
# include <boost/preprocessor/punctuation/comma_if.hpp>
|
||||
# endif
|
||||
|
||||
# define BOOST_FT_type_name
|
||||
|
||||
# if !BOOST_FT_mfp
|
||||
|
||||
# define BOOST_FT_types \
|
||||
R BOOST_PP_COMMA_IF(BOOST_FT_arity) BOOST_FT_params(BOOST_PP_EMPTY)
|
||||
# else
|
||||
|
||||
# define BOOST_FT_types \
|
||||
R, typename class_transform<T0 BOOST_FT_cv, L>::type \
|
||||
BOOST_PP_COMMA_IF(BOOST_PP_DEC(BOOST_FT_arity)) \
|
||||
BOOST_FT_params(BOOST_PP_EMPTY)
|
||||
|
||||
# endif
|
||||
|
||||
#elif BOOST_FT_ARITY_LOOP_IS_ITERATING
|
||||
|
||||
template< BOOST_FT_tplargs(BOOST_PP_IDENTITY(typename)), typename L>
|
||||
struct components_impl<BOOST_FT_type, L>
|
||||
{
|
||||
typedef encode_bits<BOOST_FT_flags,BOOST_FT_cc_id> bits;
|
||||
typedef constant<BOOST_FT_full_mask> mask;
|
||||
|
||||
typedef function_types::components<BOOST_FT_type, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
|
||||
typedef mpl::integral_c<std::size_t,BOOST_FT_arity> function_arity;
|
||||
|
||||
typedef BOOST_PP_CAT(mpl::vector,BOOST_FT_n)< BOOST_FT_types > types;
|
||||
};
|
||||
|
||||
#elif BOOST_FT_ARITY_LOOP_SUFFIX
|
||||
|
||||
# undef BOOST_FT_types
|
||||
# undef BOOST_FT_type_name
|
||||
|
||||
#else
|
||||
# error "attempt to use arity loop master file without loop"
|
||||
#endif
|
||||
|
134
include/boost/function_types/detail/cv_traits.hpp
Normal file
134
include/boost/function_types/detail/cv_traits.hpp
Normal file
@ -0,0 +1,134 @@
|
||||
|
||||
// (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 BOOST_FT_DETAIL_CV_TRAITS_HPP_INCLUDED
|
||||
#define BOOST_FT_DETAIL_CV_TRAITS_HPP_INCLUDED
|
||||
|
||||
#include <cstddef>
|
||||
#include <boost/detail/workaround.hpp>
|
||||
|
||||
#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
|
||||
# include <boost/type_traits/remove_cv.hpp>
|
||||
# include <boost/type_traits/remove_pointer.hpp>
|
||||
# include <boost/type_traits/remove_reference.hpp>
|
||||
#endif
|
||||
|
||||
#include <boost/function_types/property_tags.hpp>
|
||||
|
||||
namespace boost { namespace function_types { namespace detail {
|
||||
|
||||
namespace ft = boost::function_types;
|
||||
|
||||
|
||||
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
|
||||
|
||||
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;
|
||||
BOOST_STATIC_CONSTANT(std::size_t, value =
|
||||
sizeof(ft::detail::switch_cv(ft::detail::ref_to_ptr(_t) ) ));
|
||||
};
|
||||
|
||||
template<typename T> struct cv_traits
|
||||
{
|
||||
typedef typename ft::detail::cv_tag_impl<
|
||||
::boost::function_types::detail::cv_code<T>::value >::type
|
||||
tag;
|
||||
|
||||
// may require Boost.TypeTraits broken compiler specializations
|
||||
// to work
|
||||
typedef typename boost::remove_cv<
|
||||
typename boost::remove_pointer<
|
||||
typename boost::remove_reference<T>::type
|
||||
>::type
|
||||
>::type type;
|
||||
};
|
||||
#endif
|
||||
|
||||
} } } // namespace boost::function_types::detail
|
||||
|
||||
#endif
|
||||
|
16
include/boost/function_types/detail/encoding/aliases_def.hpp
Normal file
16
include/boost/function_types/detail/encoding/aliases_def.hpp
Normal file
@ -0,0 +1,16 @@
|
||||
|
||||
// (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 BOOST_FT_callable_builtin
|
||||
#define member BOOST_FT_member_pointer
|
||||
#define non_member BOOST_FT_non_member
|
||||
#define variadic BOOST_FT_variadic
|
||||
#define non_variadic BOOST_FT_non_variadic
|
||||
|
@ -0,0 +1,16 @@
|
||||
|
||||
// (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
|
||||
|
51
include/boost/function_types/detail/encoding/def.hpp
Normal file
51
include/boost/function_types/detail/encoding/def.hpp
Normal file
@ -0,0 +1,51 @@
|
||||
|
||||
// (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 BOOST_FT_type_mask 0x000000ff // 1111 1111
|
||||
#define BOOST_FT_callable_builtin 0x00000001 // 0000 0001
|
||||
#define BOOST_FT_non_member 0x00000002 // 0000 0010
|
||||
#define BOOST_FT_function 0x00000007 // 0000 0111
|
||||
#define BOOST_FT_pointer 0x0000000b // 0000 1011
|
||||
#define BOOST_FT_reference 0x00000013 // 0001 0011
|
||||
#define BOOST_FT_non_member_callable_builtin 0x00000003 // 0000 0011
|
||||
#define BOOST_FT_member_pointer 0x00000020 // 0010 0000
|
||||
#define BOOST_FT_member_function_pointer 0x00000061 // 0110 0001
|
||||
#define BOOST_FT_member_object_pointer 0x000000a3 // 1010 0001
|
||||
#define BOOST_FT_member_object_pointer_flags 0x000002a3
|
||||
|
||||
#define BOOST_FT_variadic 0x00000100
|
||||
#define BOOST_FT_non_variadic 0x00000200
|
||||
#define BOOST_FT_variadic_mask 0x00000300
|
||||
|
||||
#define BOOST_FT_const 0x00000400
|
||||
#define BOOST_FT_volatile 0x00000800
|
||||
|
||||
#define BOOST_FT_default_cc 0x00008000
|
||||
#define BOOST_FT_cc_mask 0x00ff8000
|
||||
|
||||
#define BOOST_FT_kind_mask 0x000000fc
|
||||
|
||||
#define BOOST_FT_flags_mask 0x00000fff
|
||||
#define BOOST_FT_full_mask 0x00ff0fff
|
||||
|
||||
#define BOOST_FT_arity_shift 24
|
||||
#define BOOST_FT_arity_mask 0x7f000000
|
||||
|
38
include/boost/function_types/detail/encoding/undef.hpp
Normal file
38
include/boost/function_types/detail/encoding/undef.hpp
Normal file
@ -0,0 +1,38 @@
|
||||
|
||||
// (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 BOOST_FT_type_mask
|
||||
#undef BOOST_FT_kind_mask
|
||||
#undef BOOST_FT_callable_builtin
|
||||
#undef BOOST_FT_non_member
|
||||
#undef BOOST_FT_function
|
||||
#undef BOOST_FT_pointer
|
||||
#undef BOOST_FT_reference
|
||||
#undef BOOST_FT_non_member_callable_builtin
|
||||
#undef BOOST_FT_member_pointer
|
||||
#undef BOOST_FT_member_function_pointer
|
||||
#undef BOOST_FT_member_object_pointer
|
||||
#undef BOOST_FT_member_object_pointer_flags
|
||||
|
||||
#undef BOOST_FT_variadic
|
||||
#undef BOOST_FT_non_variadic
|
||||
#undef BOOST_FT_variadic_mask
|
||||
|
||||
#undef BOOST_FT_const
|
||||
#undef BOOST_FT_volatile
|
||||
|
||||
#undef BOOST_FT_default_cc
|
||||
#undef BOOST_FT_cc_mask
|
||||
|
||||
#undef BOOST_FT_flags_mask
|
||||
#undef BOOST_FT_full_mask
|
||||
|
||||
#undef BOOST_FT_arity_mask
|
||||
|
145
include/boost/function_types/detail/pp_arity_loop.hpp
Normal file
145
include/boost/function_types/detail/pp_arity_loop.hpp
Normal file
@ -0,0 +1,145 @@
|
||||
|
||||
// (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 BOOST_FT_PREPROCESSING_MODE
|
||||
// input: BOOST_FT_mfp 0 or 1 <=> member function pointer?
|
||||
// input: BOOST_FT_type_name BOOST_FT_type --> "R (* ..._type_name)()" (pass2)
|
||||
#endif
|
||||
// input: BOOST_FT_syntax type macro to use
|
||||
// input: BOOST_FT_cc empty or cc specifier
|
||||
// input: BOOST_FT_ell empty or "..."
|
||||
// input: BOOST_FT_cv empty or cv qualifiers
|
||||
// input: BOOST_FT_flags single decimal integer encoding the flags
|
||||
// output: BOOST_FT_n number of component types (arity+1)
|
||||
// output: BOOST_FT_arity current arity
|
||||
// output: BOOST_FT_type macro that expands to the type
|
||||
// output: BOOST_FT_tplargs(p) template arguments with given prefix
|
||||
// output: BOOST_FT_params(p) parameters with given prefix
|
||||
|
||||
#ifdef __WAVE__
|
||||
# pragma wave option(preserve: 0)
|
||||
#endif
|
||||
|
||||
#ifndef BOOST_FT_ARITY_LOOP_IS_ITERATING
|
||||
|
||||
# define BOOST_FT_AL_PREPROCESSED \
|
||||
BOOST_FT_AL_FILE(BOOST_FT_al_path,BOOST_FT_FROM_ARITY,BOOST_FT_mfp)
|
||||
|
||||
# define BOOST_FT_AL_FILE(base_path,max_arity,mfp) \
|
||||
BOOST_FT_AL_FILE_I(base_path,max_arity,mfp)
|
||||
# define BOOST_FT_AL_FILE_I(base_path,max_arity,mfp) \
|
||||
<base_path/arity ## max_arity ## _ ## mfp.hpp>
|
||||
|
||||
# if !defined(BOOST_FT_PREPROCESSING_MODE)
|
||||
|
||||
# if BOOST_FT_MAX_ARITY < 10
|
||||
# define BOOST_FT_FROM_ARITY 0
|
||||
# elif BOOST_FT_MAX_ARITY < 20
|
||||
# define BOOST_FT_FROM_ARITY 10
|
||||
# elif BOOST_FT_MAX_ARITY < 30
|
||||
# define BOOST_FT_FROM_ARITY 20
|
||||
# elif BOOST_FT_MAX_ARITY < 40
|
||||
# define BOOST_FT_FROM_ARITY 30
|
||||
# endif
|
||||
|
||||
# if BOOST_FT_FROM_ARITY
|
||||
# include BOOST_FT_AL_PREPROCESSED
|
||||
# endif
|
||||
|
||||
# elif !defined(BOOST_FT_FROM_ARITY) // single pass preprocessing
|
||||
# define BOOST_FT_FROM_ARITY 0
|
||||
|
||||
# elif BOOST_FT_FROM_ARITY > 0 // arity20 includes arity10
|
||||
BOOST_PP_EXPAND(#) include BOOST_FT_AL_PREPROCESSED
|
||||
# endif
|
||||
|
||||
# undef BOOST_FT_AL_PREPROCESSED
|
||||
|
||||
# undef BOOST_FT_AL_FILE
|
||||
# undef BOOST_FT_AL_FILE_I
|
||||
|
||||
# if BOOST_FT_MAX_ARITY > BOOST_FT_FROM_ARITY
|
||||
|
||||
# ifndef BOOST_FT_DETAIL_ARITY_LOOP_HPP_INCLUDED
|
||||
# define BOOST_FT_DETAIL_ARITY_LOOP_HPP_INCLUDED
|
||||
# include <boost/preprocessor/cat.hpp>
|
||||
# include <boost/preprocessor/tuple/eat.hpp>
|
||||
# include <boost/preprocessor/control/if.hpp>
|
||||
# include <boost/preprocessor/arithmetic/inc.hpp>
|
||||
# include <boost/preprocessor/facilities/empty.hpp>
|
||||
# include <boost/preprocessor/facilities/expand.hpp>
|
||||
# include <boost/preprocessor/iteration/iterate.hpp>
|
||||
# include <boost/preprocessor/repetition/enum_params.hpp>
|
||||
# include <boost/preprocessor/repetition/enum_shifted_params.hpp>
|
||||
# include <boost/preprocessor/repetition/enum_trailing_params.hpp>
|
||||
# endif
|
||||
|
||||
# define BOOST_FT_ARITY_LOOP_PREFIX 1
|
||||
# include BOOST_PP_EXPAND(<BOOST_FT_al_path/master.hpp>)
|
||||
# undef BOOST_FT_ARITY_LOOP_PREFIX
|
||||
|
||||
# if !BOOST_PP_IS_ITERATING
|
||||
# define BOOST_PP_FILENAME_1 <BOOST_FT_al_path/master.hpp>
|
||||
# elif BOOST_PP_ITERATION_DEPTH() == 1
|
||||
# define BOOST_PP_FILENAME_2 <BOOST_FT_al_path/master.hpp>
|
||||
# else
|
||||
# error "loops nested too deeply"
|
||||
# endif
|
||||
|
||||
# define BOOST_FT_arity BOOST_PP_ITERATION()
|
||||
# define BOOST_FT_n BOOST_PP_INC(BOOST_FT_arity)
|
||||
|
||||
# define BOOST_FT_type \
|
||||
BOOST_FT_syntax(BOOST_FT_cc,BOOST_FT_type_name BOOST_PP_EMPTY)\
|
||||
(BOOST_FT_params(BOOST_PP_EMPTY) BOOST_FT_ell) BOOST_FT_cv
|
||||
|
||||
# define BOOST_FT_tplargs(prefx) \
|
||||
prefx() R BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_FT_arity,prefx() T)
|
||||
|
||||
# if !BOOST_FT_mfp
|
||||
|
||||
# define BOOST_FT_params(prefx) \
|
||||
BOOST_PP_IF(BOOST_FT_arity,BOOST_PP_ENUM_PARAMS, \
|
||||
BOOST_FT_nullary_param BOOST_PP_TUPLE_EAT(2))( \
|
||||
BOOST_FT_arity,prefx() T)
|
||||
# else
|
||||
|
||||
# define BOOST_FT_params(prefx) \
|
||||
BOOST_PP_ENUM_SHIFTED_PARAMS(BOOST_FT_arity,prefx() T)
|
||||
|
||||
# endif
|
||||
|
||||
# if !BOOST_FT_FROM_ARITY
|
||||
# define BOOST_PP_ITERATION_LIMITS (BOOST_FT_mfp, BOOST_FT_MAX_ARITY)
|
||||
# else
|
||||
# define BOOST_PP_ITERATION_LIMITS \
|
||||
(BOOST_FT_FROM_ARITY+1, BOOST_FT_MAX_ARITY)
|
||||
# endif
|
||||
|
||||
# define BOOST_FT_ARITY_LOOP_IS_ITERATING 1
|
||||
# include BOOST_PP_ITERATE()
|
||||
# undef BOOST_FT_ARITY_LOOP_IS_ITERATING
|
||||
|
||||
# undef BOOST_FT_arity
|
||||
# undef BOOST_FT_params
|
||||
# undef BOOST_FT_tplargs
|
||||
# undef BOOST_FT_type
|
||||
|
||||
# define BOOST_FT_ARITY_LOOP_SUFFIX 1
|
||||
# include BOOST_PP_EXPAND(<BOOST_FT_al_path/master.hpp>)
|
||||
# undef BOOST_FT_ARITY_LOOP_SUFFIX
|
||||
# endif
|
||||
|
||||
# undef BOOST_FT_FROM_ARITY
|
||||
|
||||
#else
|
||||
# error "attempt to nest arity loops"
|
||||
#endif
|
||||
|
103
include/boost/function_types/detail/pp_cc_loop/master.hpp
Normal file
103
include/boost/function_types/detail/pp_cc_loop/master.hpp
Normal file
@ -0,0 +1,103 @@
|
||||
|
||||
// (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 !BOOST_PP_IS_ITERATING
|
||||
|
||||
# ifndef BOOST_FT_DETAIL_CC_LOOP_MASTER_HPP_INCLUDED
|
||||
# define BOOST_FT_DETAIL_CC_LOOP_MASTER_HPP_INCLUDED
|
||||
# include <boost/function_types/config/cc_names.hpp>
|
||||
|
||||
# include <boost/preprocessor/cat.hpp>
|
||||
# include <boost/preprocessor/seq/size.hpp>
|
||||
# include <boost/preprocessor/seq/elem.hpp>
|
||||
# include <boost/preprocessor/tuple/elem.hpp>
|
||||
# include <boost/preprocessor/iteration/iterate.hpp>
|
||||
# include <boost/preprocessor/facilities/expand.hpp>
|
||||
# include <boost/preprocessor/arithmetic/inc.hpp>
|
||||
# endif
|
||||
|
||||
# include <boost/function_types/detail/encoding/def.hpp>
|
||||
# include <boost/function_types/detail/encoding/aliases_def.hpp>
|
||||
|
||||
# define BOOST_PP_FILENAME_1 \
|
||||
<boost/function_types/detail/pp_cc_loop/master.hpp>
|
||||
# define BOOST_PP_ITERATION_LIMITS \
|
||||
(0,BOOST_PP_SEQ_SIZE(BOOST_FT_CC_NAMES_SEQ)-1)
|
||||
# include BOOST_PP_ITERATE()
|
||||
# include <boost/function_types/detail/encoding/aliases_undef.hpp>
|
||||
# include <boost/function_types/detail/encoding/undef.hpp>
|
||||
|
||||
#elif BOOST_FT_CC_PREPROCESSING
|
||||
|
||||
# define BOOST_FT_cc_id BOOST_PP_INC(BOOST_PP_FRAME_ITERATION(1))
|
||||
# define BOOST_FT_cc_inf \
|
||||
BOOST_PP_SEQ_ELEM(BOOST_PP_FRAME_ITERATION(1),BOOST_FT_CC_NAMES_SEQ)
|
||||
|
||||
# define BOOST_FT_cc_pp_name BOOST_PP_TUPLE_ELEM(3,0,BOOST_FT_cc_inf)
|
||||
# define BOOST_FT_cc_name BOOST_PP_TUPLE_ELEM(3,1,BOOST_FT_cc_inf)
|
||||
# define BOOST_FT_cc BOOST_PP_TUPLE_ELEM(3,2,BOOST_FT_cc_inf)
|
||||
|
||||
# define BOOST_FT_cond BOOST_PP_CAT(BOOST_FT_CC_,BOOST_FT_cc_pp_name)
|
||||
|
||||
# if BOOST_FT_cond
|
||||
# include BOOST_PP_EXPAND(<BOOST_FT_cc_file>)
|
||||
# endif
|
||||
|
||||
# undef BOOST_FT_cond
|
||||
|
||||
# undef BOOST_FT_cc_pp_name
|
||||
# undef BOOST_FT_cc_name
|
||||
# undef BOOST_FT_cc
|
||||
|
||||
# undef BOOST_FT_cc_id
|
||||
# undef BOOST_FT_cc_inf
|
||||
|
||||
#else // if generating preprocessed file
|
||||
BOOST_PP_EXPAND(#) define BOOST_FT_cc_id BOOST_PP_INC(BOOST_PP_ITERATION())
|
||||
|
||||
# define BOOST_FT_cc_inf \
|
||||
BOOST_PP_SEQ_ELEM(BOOST_PP_ITERATION(),BOOST_FT_CC_NAMES_SEQ)
|
||||
|
||||
# define BOOST_FT_cc_pp_name BOOST_PP_TUPLE_ELEM(3,0,BOOST_FT_cc_inf)
|
||||
|
||||
# define BOOST_FT_CC_DEF(name,index) \
|
||||
name BOOST_PP_TUPLE_ELEM(3,index,BOOST_FT_cc_inf)
|
||||
BOOST_PP_EXPAND(#) define BOOST_FT_CC_DEF(BOOST_FT_cc_name,1)
|
||||
BOOST_PP_EXPAND(#) define BOOST_FT_CC_DEF(BOOST_FT_cc,2)
|
||||
# undef BOOST_FT_CC_DEF
|
||||
|
||||
# define BOOST_FT_cc_cond_v BOOST_PP_CAT(BOOST_FT_CC_,BOOST_FT_cc_pp_name)
|
||||
BOOST_PP_EXPAND(#) define BOOST_FT_cond BOOST_FT_cc_cond_v
|
||||
# undef BOOST_FT_cc_cond_v
|
||||
|
||||
# undef BOOST_FT_cc_pp_name
|
||||
# undef BOOST_FT_cc_inf
|
||||
|
||||
BOOST_PP_EXPAND(#) if BOOST_FT_cond
|
||||
#define _()
|
||||
BOOST_PP_EXPAND(#) include BOOST_PP_EXPAND _()(<BOOST_FT_cc_file>)
|
||||
#undef _
|
||||
BOOST_PP_EXPAND(#) endif
|
||||
|
||||
BOOST_PP_EXPAND(#) undef BOOST_FT_cond
|
||||
|
||||
BOOST_PP_EXPAND(#) undef BOOST_FT_cc_name
|
||||
BOOST_PP_EXPAND(#) undef BOOST_FT_cc
|
||||
|
||||
BOOST_PP_EXPAND(#) undef BOOST_FT_cc_id
|
||||
|
||||
#endif
|
||||
|
@ -0,0 +1,99 @@
|
||||
|
||||
// (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 BOOST_FT_cc_id 1
|
||||
# define BOOST_FT_cc_name implicit_cc
|
||||
# define BOOST_FT_cc BOOST_PP_EMPTY
|
||||
# define BOOST_FT_cond BOOST_FT_CC_IMPLICIT
|
||||
# if BOOST_FT_cond
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_cc_file> )
|
||||
# endif
|
||||
# undef BOOST_FT_cond
|
||||
# undef BOOST_FT_cc_name
|
||||
# undef BOOST_FT_cc
|
||||
# undef BOOST_FT_cc_id
|
||||
# define BOOST_FT_cc_id 2
|
||||
# define BOOST_FT_cc_name cdecl_cc
|
||||
# define BOOST_FT_cc BOOST_PP_IDENTITY(__cdecl )
|
||||
# define BOOST_FT_cond BOOST_FT_CC_CDECL
|
||||
# if BOOST_FT_cond
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_cc_file> )
|
||||
# endif
|
||||
# undef BOOST_FT_cond
|
||||
# undef BOOST_FT_cc_name
|
||||
# undef BOOST_FT_cc
|
||||
# undef BOOST_FT_cc_id
|
||||
# define BOOST_FT_cc_id 3
|
||||
# define BOOST_FT_cc_name stdcall_cc
|
||||
# define BOOST_FT_cc BOOST_PP_IDENTITY(__stdcall )
|
||||
# define BOOST_FT_cond BOOST_FT_CC_STDCALL
|
||||
# if BOOST_FT_cond
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_cc_file> )
|
||||
# endif
|
||||
# undef BOOST_FT_cond
|
||||
# undef BOOST_FT_cc_name
|
||||
# undef BOOST_FT_cc
|
||||
# undef BOOST_FT_cc_id
|
||||
# define BOOST_FT_cc_id 4
|
||||
# define BOOST_FT_cc_name pascal_cc
|
||||
# define BOOST_FT_cc BOOST_PP_IDENTITY(pascal )
|
||||
# define BOOST_FT_cond BOOST_FT_CC_PASCAL
|
||||
# if BOOST_FT_cond
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_cc_file> )
|
||||
# endif
|
||||
# undef BOOST_FT_cond
|
||||
# undef BOOST_FT_cc_name
|
||||
# undef BOOST_FT_cc
|
||||
# undef BOOST_FT_cc_id
|
||||
# define BOOST_FT_cc_id 5
|
||||
# define BOOST_FT_cc_name fastcall_cc
|
||||
# define BOOST_FT_cc BOOST_PP_IDENTITY(__fastcall)
|
||||
# define BOOST_FT_cond BOOST_FT_CC_FASTCALL
|
||||
# if BOOST_FT_cond
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_cc_file> )
|
||||
# endif
|
||||
# undef BOOST_FT_cond
|
||||
# undef BOOST_FT_cc_name
|
||||
# undef BOOST_FT_cc
|
||||
# undef BOOST_FT_cc_id
|
||||
# define BOOST_FT_cc_id 6
|
||||
# define BOOST_FT_cc_name clrcall_cc
|
||||
# define BOOST_FT_cc BOOST_PP_IDENTITY(__clrcall )
|
||||
# define BOOST_FT_cond BOOST_FT_CC_CLRCALL
|
||||
# if BOOST_FT_cond
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_cc_file> )
|
||||
# endif
|
||||
# undef BOOST_FT_cond
|
||||
# undef BOOST_FT_cc_name
|
||||
# undef BOOST_FT_cc
|
||||
# undef BOOST_FT_cc_id
|
||||
# define BOOST_FT_cc_id 7
|
||||
# define BOOST_FT_cc_name thiscall_cc
|
||||
# define BOOST_FT_cc BOOST_PP_IDENTITY(__thiscall)
|
||||
# define BOOST_FT_cond BOOST_FT_CC_THISCALL
|
||||
# if BOOST_FT_cond
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_cc_file> )
|
||||
# endif
|
||||
# undef BOOST_FT_cond
|
||||
# undef BOOST_FT_cc_name
|
||||
# undef BOOST_FT_cc
|
||||
# undef BOOST_FT_cc_id
|
||||
# define BOOST_FT_cc_id 8
|
||||
# define BOOST_FT_cc_name thiscall_cc
|
||||
# define BOOST_FT_cc BOOST_PP_EMPTY
|
||||
# define BOOST_FT_cond BOOST_FT_CC_IMPLICIT_THISCALL
|
||||
# if BOOST_FT_cond
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_cc_file> )
|
||||
# endif
|
||||
# undef BOOST_FT_cond
|
||||
# undef BOOST_FT_cc_name
|
||||
# undef BOOST_FT_cc
|
||||
# undef BOOST_FT_cc_id
|
80
include/boost/function_types/detail/pp_loop.hpp
Normal file
80
include/boost/function_types/detail/pp_loop.hpp
Normal file
@ -0,0 +1,80 @@
|
||||
|
||||
// (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 BOOST_FT_DETAIL_PP_LOOP_HPP_INCLUDED
|
||||
#define BOOST_FT_DETAIL_PP_LOOP_HPP_INCLUDED
|
||||
# include <boost/preprocessor/facilities/expand.hpp>
|
||||
# include <boost/preprocessor/facilities/empty.hpp>
|
||||
# include <boost/preprocessor/punctuation/paren.hpp>
|
||||
#endif
|
||||
|
||||
#include <boost/function_types/detail/encoding/def.hpp>
|
||||
#include <boost/function_types/detail/encoding/aliases_def.hpp>
|
||||
|
||||
#if defined(BOOST_FT_PREPROCESSING_MODE)
|
||||
# define BOOST_FT_loop <boost/function_types/detail/pp_cc_loop/master.hpp>
|
||||
#else
|
||||
# define BOOST_FT_loop \
|
||||
<boost/function_types/detail/pp_cc_loop/preprocessed.hpp>
|
||||
#endif
|
||||
|
||||
#if defined(BOOST_FT_al_path)
|
||||
|
||||
# define BOOST_FT_cc_file \
|
||||
boost/function_types/detail/pp_variate_loop/preprocessed.hpp
|
||||
# define BOOST_FT_variate_file \
|
||||
boost/function_types/detail/pp_arity_loop.hpp
|
||||
|
||||
# ifndef BOOST_FT_type_function
|
||||
# define BOOST_FT_type_function(cc,name) BOOST_FT_SYNTAX( \
|
||||
R BOOST_PP_EMPTY,BOOST_PP_EMPTY,cc,BOOST_PP_EMPTY,name,BOOST_PP_EMPTY)
|
||||
# endif
|
||||
# ifndef BOOST_FT_type_function_pointer
|
||||
# define BOOST_FT_type_function_pointer(cc,name) BOOST_FT_SYNTAX( \
|
||||
R BOOST_PP_EMPTY,BOOST_PP_LPAREN,cc,* BOOST_PP_EMPTY,name,BOOST_PP_RPAREN)
|
||||
# endif
|
||||
# ifndef BOOST_FT_type_function_reference
|
||||
# define BOOST_FT_type_function_reference(cc,name) BOOST_FT_SYNTAX( \
|
||||
R BOOST_PP_EMPTY,BOOST_PP_LPAREN,cc,& BOOST_PP_EMPTY,name,BOOST_PP_RPAREN)
|
||||
# endif
|
||||
# ifndef BOOST_FT_type_member_function_pointer
|
||||
# define BOOST_FT_type_member_function_pointer(cc,name) BOOST_FT_SYNTAX( \
|
||||
R BOOST_PP_EMPTY,BOOST_PP_LPAREN,cc,T0::* BOOST_PP_EMPTY,name,BOOST_PP_RPAREN)
|
||||
# endif
|
||||
|
||||
# include BOOST_FT_loop
|
||||
|
||||
# undef BOOST_FT_type_function
|
||||
# undef BOOST_FT_type_function_pointer
|
||||
# undef BOOST_FT_type_function_reference
|
||||
# undef BOOST_FT_type_member_function_pointer
|
||||
|
||||
# undef BOOST_FT_variations
|
||||
# undef BOOST_FT_variate_file
|
||||
# undef BOOST_FT_cc_file
|
||||
# undef BOOST_FT_al_path
|
||||
|
||||
#elif defined(BOOST_FT_cc_file)
|
||||
|
||||
# include BOOST_FT_loop
|
||||
# undef BOOST_FT_cc_file
|
||||
|
||||
#else
|
||||
|
||||
# error "argument missing"
|
||||
|
||||
#endif
|
||||
|
||||
#undef BOOST_FT_loop
|
||||
|
||||
#include <boost/function_types/detail/encoding/aliases_undef.hpp>
|
||||
#include <boost/function_types/detail/encoding/undef.hpp>
|
||||
|
||||
|
@ -0,0 +1,103 @@
|
||||
|
||||
// (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(BOOST_PP_VALUE)
|
||||
# include <boost/preprocessor/slot/slot.hpp>
|
||||
# include <boost/preprocessor/iteration/self.hpp>
|
||||
|
||||
# include <boost/function_types/detail/encoding/def.hpp>
|
||||
# include <boost/function_types/detail/encoding/aliases_def.hpp>
|
||||
|
||||
namespace boost { namespace function_types {
|
||||
|
||||
namespace detail
|
||||
{
|
||||
template<class Tag, class RefTag> struct selector_bits
|
||||
{
|
||||
# define BOOST_PP_VALUE non_member|member|non_variadic|variadic
|
||||
# include BOOST_PP_ASSIGN_SLOT(1)
|
||||
|
||||
BOOST_STATIC_CONSTANT(bits_t, value = (
|
||||
::boost::function_types::detail::bits<Tag>::value & BOOST_FT_default_cc
|
||||
| ::boost::function_types::detail::bits<RefTag>::value & BOOST_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<
|
||||
::boost::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<BOOST_FT_cc_mask> cc_mask_constant;
|
||||
|
||||
# define BOOST_FT_self \
|
||||
<boost/function_types/detail/pp_retag_default_cc/master.hpp>
|
||||
|
||||
# define default_cc_ BOOST_FT_default_cc
|
||||
|
||||
# define BOOST_PP_VALUE default_cc_|non_member|non_variadic
|
||||
# define BOOST_FT_tester void (*tester)()
|
||||
# define BOOST_PP_INDIRECT_SELF BOOST_FT_self
|
||||
# include BOOST_PP_INCLUDE_SELF()
|
||||
|
||||
# define BOOST_PP_VALUE default_cc_|non_member|variadic
|
||||
# define BOOST_FT_tester void (*tester)(...)
|
||||
# define BOOST_PP_INDIRECT_SELF BOOST_FT_self
|
||||
# include BOOST_PP_INCLUDE_SELF()
|
||||
|
||||
# define BOOST_PP_VALUE default_cc_|member|non_variadic
|
||||
# define BOOST_FT_tester void (test_class::*tester)()
|
||||
# define BOOST_PP_INDIRECT_SELF BOOST_FT_self
|
||||
# include BOOST_PP_INCLUDE_SELF()
|
||||
|
||||
# define BOOST_PP_VALUE default_cc_|member|variadic
|
||||
# define BOOST_FT_tester void (test_class::*tester)(...)
|
||||
# define BOOST_PP_INDIRECT_SELF BOOST_FT_self
|
||||
# include BOOST_PP_INCLUDE_SELF()
|
||||
|
||||
# undef default_cc_
|
||||
|
||||
# undef BOOST_FT_self
|
||||
|
||||
} } } // namespace ::boost::function_types::detail
|
||||
|
||||
# include <boost/function_types/detail/encoding/aliases_undef.hpp>
|
||||
# include <boost/function_types/detail/encoding/undef.hpp>
|
||||
|
||||
#else // if defined(BOOST_PP_VALUE)
|
||||
|
||||
# include BOOST_PP_ASSIGN_SLOT(1)
|
||||
|
||||
template<> struct default_cc_tag<BOOST_PP_SLOT(1)>
|
||||
{
|
||||
typedef BOOST_FT_tester;
|
||||
typedef mpl::bitand_<components<tester>::bits,cc_mask_constant> bits;
|
||||
typedef cc_mask_constant mask;
|
||||
};
|
||||
|
||||
# undef BOOST_FT_tester
|
||||
|
||||
#endif
|
||||
|
@ -0,0 +1,59 @@
|
||||
|
||||
// (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 boost { namespace function_types {
|
||||
namespace detail
|
||||
{
|
||||
template<class Tag, class RefTag> struct selector_bits
|
||||
{
|
||||
BOOST_STATIC_CONSTANT(bits_t, value = (
|
||||
::boost::function_types::detail::bits<Tag> ::value & 0x00008000
|
||||
| ::boost::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<
|
||||
::boost::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;
|
||||
};
|
||||
} } }
|
17
include/boost/function_types/detail/pp_tags/cc_tag.hpp
Normal file
17
include/boost/function_types/detail/pp_tags/cc_tag.hpp
Normal file
@ -0,0 +1,17 @@
|
||||
|
||||
// (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 BOOST_FT_cc_name
|
||||
{
|
||||
typedef detail::encode_bits<0,BOOST_FT_cc_id> bits;
|
||||
typedef detail::constant<BOOST_FT_cc_mask> mask;
|
||||
};
|
||||
|
||||
|
126
include/boost/function_types/detail/pp_tags/master.hpp
Normal file
126
include/boost/function_types/detail/pp_tags/master.hpp
Normal file
@ -0,0 +1,126 @@
|
||||
|
||||
// (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(BOOST_FT_PREPROCESSING_MODE) || defined(BOOST_FT_CONFIG_HPP_INCLUDED)
|
||||
# error "this file used with two-pass preprocessing, only"
|
||||
#endif
|
||||
|
||||
#include <boost/preprocessor/slot/slot.hpp>
|
||||
#include <boost/function_types/detail/encoding/def.hpp>
|
||||
|
||||
namespace boost { namespace function_types {
|
||||
|
||||
typedef detail::property_tag<BOOST_FT_non_variadic,BOOST_FT_variadic_mask> non_variadic;
|
||||
typedef detail::property_tag<BOOST_FT_variadic,BOOST_FT_variadic_mask> variadic;
|
||||
|
||||
typedef detail::property_tag<0,BOOST_FT_const> non_const;
|
||||
typedef detail::property_tag<BOOST_FT_const,BOOST_FT_const> const_qualified;
|
||||
|
||||
typedef detail::property_tag<0,BOOST_FT_volatile> non_volatile;
|
||||
typedef detail::property_tag<BOOST_FT_volatile,BOOST_FT_volatile> volatile_qualified;
|
||||
|
||||
typedef detail::property_tag<BOOST_FT_default_cc,BOOST_FT_cc_mask> default_cc;
|
||||
|
||||
#define BOOST_PP_VALUE BOOST_FT_const|BOOST_FT_volatile
|
||||
#include BOOST_PP_ASSIGN_SLOT(1)
|
||||
|
||||
typedef detail::property_tag<0 , BOOST_PP_SLOT(1)> non_cv;
|
||||
typedef detail::property_tag<BOOST_FT_const , BOOST_PP_SLOT(1)> const_non_volatile;
|
||||
typedef detail::property_tag<BOOST_FT_volatile, BOOST_PP_SLOT(1)> volatile_non_const;
|
||||
typedef detail::property_tag<BOOST_PP_SLOT(1) , BOOST_PP_SLOT(1)> cv_qualified;
|
||||
|
||||
namespace detail {
|
||||
|
||||
typedef constant<BOOST_FT_full_mask> full_mask;
|
||||
|
||||
template <bits_t Flags, bits_t CCID> struct encode_bits_impl
|
||||
{
|
||||
BOOST_STATIC_CONSTANT( bits_t, value =
|
||||
Flags | (BOOST_FT_default_cc * CCID) << 1 );
|
||||
};
|
||||
|
||||
template <bits_t Flags, bits_t CCID, std::size_t Arity>
|
||||
struct encode_charr_impl
|
||||
{
|
||||
BOOST_STATIC_CONSTANT(std::size_t, value = (std::size_t)(1+
|
||||
Flags | (BOOST_FT_default_cc * CCID) << 1 | Arity << BOOST_FT_arity_shift
|
||||
));
|
||||
};
|
||||
|
||||
template <bits_t Bits> struct decode_bits
|
||||
{
|
||||
BOOST_STATIC_CONSTANT(bits_t, flags = Bits & BOOST_FT_flags_mask);
|
||||
|
||||
BOOST_STATIC_CONSTANT(bits_t, cc_id =
|
||||
( (Bits & BOOST_FT_full_mask) / BOOST_FT_default_cc) >> 1
|
||||
);
|
||||
|
||||
BOOST_STATIC_CONSTANT(bits_t, tag_bits = (Bits & BOOST_FT_full_mask));
|
||||
|
||||
BOOST_STATIC_CONSTANT(std::size_t, arity = (std::size_t)
|
||||
(Bits >> BOOST_FT_arity_shift)
|
||||
);
|
||||
};
|
||||
|
||||
template <bits_t LHS_bits, bits_t LHS_mask, bits_t RHS_bits, bits_t RHS_mask>
|
||||
struct tag_ice
|
||||
{
|
||||
BOOST_STATIC_CONSTANT(bool, match =
|
||||
RHS_bits == (LHS_bits & RHS_mask & (RHS_bits |~BOOST_FT_type_mask))
|
||||
);
|
||||
|
||||
BOOST_STATIC_CONSTANT(bits_t, combined_bits =
|
||||
LHS_bits & ~RHS_mask | RHS_bits
|
||||
);
|
||||
|
||||
BOOST_STATIC_CONSTANT(bits_t, combined_mask =
|
||||
LHS_mask | RHS_mask
|
||||
);
|
||||
|
||||
BOOST_STATIC_CONSTANT(bits_t, extracted_bits =
|
||||
LHS_bits & RHS_mask
|
||||
);
|
||||
|
||||
};
|
||||
|
||||
#define BOOST_FT_mask BOOST_FT_type_mask
|
||||
typedef property_tag<BOOST_FT_callable_builtin,BOOST_FT_mask> callable_builtin_tag;
|
||||
typedef property_tag<BOOST_FT_non_member_callable_builtin,BOOST_FT_mask> nonmember_callable_builtin_tag;
|
||||
typedef property_tag<BOOST_FT_function,BOOST_FT_mask> function_tag;
|
||||
typedef property_tag<BOOST_FT_reference,BOOST_FT_mask> reference_tag;
|
||||
typedef property_tag<BOOST_FT_pointer,BOOST_FT_mask> pointer_tag;
|
||||
typedef property_tag<BOOST_FT_member_function_pointer,BOOST_FT_mask> member_function_pointer_tag;
|
||||
typedef property_tag<BOOST_FT_member_object_pointer,BOOST_FT_mask> member_object_pointer_tag;
|
||||
typedef property_tag<BOOST_FT_member_object_pointer_flags,BOOST_FT_full_mask> member_object_pointer_base;
|
||||
typedef property_tag<BOOST_FT_member_pointer,BOOST_FT_mask> member_pointer_tag;
|
||||
#undef BOOST_FT_mask
|
||||
|
||||
#define BOOST_PP_VALUE BOOST_FT_function|BOOST_FT_non_variadic|BOOST_FT_default_cc
|
||||
#include BOOST_PP_ASSIGN_SLOT(1)
|
||||
#define BOOST_PP_VALUE BOOST_FT_type_mask|BOOST_FT_variadic_mask|BOOST_FT_cc_mask
|
||||
#include BOOST_PP_ASSIGN_SLOT(2)
|
||||
|
||||
typedef property_tag< BOOST_PP_SLOT(1) , BOOST_PP_SLOT(2) > nv_dcc_func;
|
||||
|
||||
#define BOOST_PP_VALUE \
|
||||
BOOST_FT_member_function_pointer|BOOST_FT_non_variadic|BOOST_FT_default_cc
|
||||
#include BOOST_PP_ASSIGN_SLOT(1)
|
||||
|
||||
typedef property_tag< BOOST_PP_SLOT(1) , BOOST_PP_SLOT(2) > nv_dcc_mfp;
|
||||
|
||||
} // namespace detail
|
||||
|
||||
} } // namespace ::boost::function_types
|
||||
|
77
include/boost/function_types/detail/pp_tags/preprocessed.hpp
Normal file
77
include/boost/function_types/detail/pp_tags/preprocessed.hpp
Normal file
@ -0,0 +1,77 @@
|
||||
|
||||
// (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 boost { 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
|
||||
{
|
||||
BOOST_STATIC_CONSTANT( bits_t, value =
|
||||
Flags | (0x00008000 * CCID) << 1 );
|
||||
};
|
||||
template <bits_t Flags, bits_t CCID, std::size_t Arity>
|
||||
struct encode_charr_impl
|
||||
{
|
||||
BOOST_STATIC_CONSTANT(std::size_t, value = (std::size_t)(1+
|
||||
Flags | (0x00008000 * CCID) << 1 | Arity << 24
|
||||
));
|
||||
};
|
||||
template <bits_t Bits> struct decode_bits
|
||||
{
|
||||
BOOST_STATIC_CONSTANT(bits_t, flags = Bits & 0x00000fff);
|
||||
BOOST_STATIC_CONSTANT(bits_t, cc_id =
|
||||
( (Bits & 0x00ff0fff) / 0x00008000) >> 1
|
||||
);
|
||||
BOOST_STATIC_CONSTANT(bits_t, tag_bits = (Bits & 0x00ff0fff));
|
||||
BOOST_STATIC_CONSTANT(std::size_t, arity = (std::size_t)
|
||||
(Bits >> 24)
|
||||
);
|
||||
};
|
||||
template <bits_t LHS_bits, bits_t LHS_mask, bits_t RHS_bits, bits_t RHS_mask>
|
||||
struct tag_ice
|
||||
{
|
||||
BOOST_STATIC_CONSTANT(bool, match =
|
||||
RHS_bits == (LHS_bits & RHS_mask & (RHS_bits | ~0x000000ff))
|
||||
);
|
||||
BOOST_STATIC_CONSTANT(bits_t, combined_bits =
|
||||
LHS_bits & ~RHS_mask | RHS_bits
|
||||
);
|
||||
BOOST_STATIC_CONSTANT(bits_t, combined_mask =
|
||||
LHS_mask | RHS_mask
|
||||
);
|
||||
BOOST_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;
|
||||
}
|
||||
} }
|
152
include/boost/function_types/detail/pp_variate_loop/master.hpp
Normal file
152
include/boost/function_types/detail/pp_variate_loop/master.hpp
Normal file
@ -0,0 +1,152 @@
|
||||
|
||||
// (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(BOOST_FT_PREPROCESSING_MODE)
|
||||
# error "this file is only for two-pass preprocessing"
|
||||
#endif
|
||||
|
||||
#if !defined(BOOST_PP_VALUE)
|
||||
# include <boost/preprocessor/slot/slot.hpp>
|
||||
# include <boost/preprocessor/facilities/empty.hpp>
|
||||
# include <boost/preprocessor/facilities/expand.hpp>
|
||||
# include <boost/function_types/detail/encoding/def.hpp>
|
||||
|
||||
BOOST_PP_EXPAND(#) define BOOST_FT_mfp 0
|
||||
BOOST_PP_EXPAND(#) define BOOST_FT_syntax BOOST_FT_type_function
|
||||
|
||||
# define BOOST_PP_VALUE \
|
||||
BOOST_FT_function|BOOST_FT_non_variadic
|
||||
# include __FILE__
|
||||
# define BOOST_PP_VALUE \
|
||||
BOOST_FT_function|BOOST_FT_variadic
|
||||
# include __FILE__
|
||||
|
||||
BOOST_PP_EXPAND(#) if !BOOST_FT_NO_CV_FUNC_SUPPORT
|
||||
# define BOOST_PP_VALUE \
|
||||
BOOST_FT_function|BOOST_FT_non_variadic|BOOST_FT_const
|
||||
# include __FILE__
|
||||
# define BOOST_PP_VALUE \
|
||||
BOOST_FT_function|BOOST_FT_variadic|BOOST_FT_const
|
||||
# include __FILE__
|
||||
# define BOOST_PP_VALUE \
|
||||
BOOST_FT_function|BOOST_FT_non_variadic|BOOST_FT_volatile
|
||||
# include __FILE__
|
||||
# define BOOST_PP_VALUE \
|
||||
BOOST_FT_function|BOOST_FT_variadic|BOOST_FT_volatile
|
||||
# include __FILE__
|
||||
# define BOOST_PP_VALUE \
|
||||
BOOST_FT_function|BOOST_FT_non_variadic|BOOST_FT_const|BOOST_FT_volatile
|
||||
# include __FILE__
|
||||
# define BOOST_PP_VALUE \
|
||||
BOOST_FT_function|BOOST_FT_variadic|BOOST_FT_const|BOOST_FT_volatile
|
||||
# include __FILE__
|
||||
BOOST_PP_EXPAND(#) endif
|
||||
|
||||
|
||||
BOOST_PP_EXPAND(#) undef BOOST_FT_syntax
|
||||
BOOST_PP_EXPAND(#) define BOOST_FT_syntax BOOST_FT_type_function_pointer
|
||||
|
||||
# define BOOST_PP_VALUE \
|
||||
BOOST_FT_pointer|BOOST_FT_non_variadic
|
||||
# include __FILE__
|
||||
# define BOOST_PP_VALUE \
|
||||
BOOST_FT_pointer|BOOST_FT_variadic
|
||||
# include __FILE__
|
||||
|
||||
BOOST_PP_EXPAND(#) undef BOOST_FT_syntax
|
||||
BOOST_PP_EXPAND(#) define BOOST_FT_syntax BOOST_FT_type_function_reference
|
||||
|
||||
# define BOOST_PP_VALUE \
|
||||
BOOST_FT_reference|BOOST_FT_non_variadic
|
||||
# include __FILE__
|
||||
# define BOOST_PP_VALUE \
|
||||
BOOST_FT_reference|BOOST_FT_variadic
|
||||
# include __FILE__
|
||||
|
||||
BOOST_PP_EXPAND(#) undef BOOST_FT_syntax
|
||||
BOOST_PP_EXPAND(#) undef BOOST_FT_mfp
|
||||
|
||||
BOOST_PP_EXPAND(#) define BOOST_FT_mfp 1
|
||||
BOOST_PP_EXPAND(#) define BOOST_FT_syntax BOOST_FT_type_member_function_pointer
|
||||
|
||||
# define BOOST_PP_VALUE \
|
||||
BOOST_FT_member_function_pointer|BOOST_FT_non_variadic
|
||||
# include __FILE__
|
||||
# define BOOST_PP_VALUE \
|
||||
BOOST_FT_member_function_pointer|BOOST_FT_variadic
|
||||
# include __FILE__
|
||||
# define BOOST_PP_VALUE \
|
||||
BOOST_FT_member_function_pointer|BOOST_FT_non_variadic|BOOST_FT_const
|
||||
# include __FILE__
|
||||
# define BOOST_PP_VALUE \
|
||||
BOOST_FT_member_function_pointer|BOOST_FT_variadic|BOOST_FT_const
|
||||
# include __FILE__
|
||||
# define BOOST_PP_VALUE \
|
||||
BOOST_FT_member_function_pointer|BOOST_FT_non_variadic|BOOST_FT_volatile
|
||||
# include __FILE__
|
||||
# define BOOST_PP_VALUE \
|
||||
BOOST_FT_member_function_pointer|BOOST_FT_variadic|BOOST_FT_volatile
|
||||
# include __FILE__
|
||||
# define BOOST_PP_VALUE \
|
||||
BOOST_FT_member_function_pointer|BOOST_FT_non_variadic|BOOST_FT_const|BOOST_FT_volatile
|
||||
# include __FILE__
|
||||
# define BOOST_PP_VALUE \
|
||||
BOOST_FT_member_function_pointer|BOOST_FT_variadic|BOOST_FT_const|BOOST_FT_volatile
|
||||
# include __FILE__
|
||||
|
||||
BOOST_PP_EXPAND(#) undef BOOST_FT_syntax
|
||||
BOOST_PP_EXPAND(#) undef BOOST_FT_mfp
|
||||
|
||||
# include <boost/function_types/detail/encoding/undef.hpp>
|
||||
#else
|
||||
|
||||
# include BOOST_PP_ASSIGN_SLOT(1)
|
||||
|
||||
# define BOOST_PP_VALUE BOOST_PP_SLOT(1) & BOOST_FT_kind_mask
|
||||
# include BOOST_PP_ASSIGN_SLOT(2)
|
||||
|
||||
BOOST_PP_EXPAND(#) if !!(BOOST_PP_SLOT(2) & (BOOST_FT_variations))
|
||||
BOOST_PP_EXPAND(#) if (BOOST_PP_SLOT(1) & (BOOST_FT_cond)) == (BOOST_FT_cond)
|
||||
|
||||
# if ( BOOST_PP_SLOT(1) & (BOOST_FT_variadic) )
|
||||
BOOST_PP_EXPAND(#) define BOOST_FT_ell ...
|
||||
BOOST_PP_EXPAND(#) define BOOST_FT_nullary_param
|
||||
# else
|
||||
BOOST_PP_EXPAND(#) define BOOST_FT_ell
|
||||
BOOST_PP_EXPAND(#) define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
|
||||
# endif
|
||||
|
||||
# if !( BOOST_PP_SLOT(1) & (BOOST_FT_volatile) )
|
||||
# if !( BOOST_PP_SLOT(1) & (BOOST_FT_const) )
|
||||
BOOST_PP_EXPAND(#) define BOOST_FT_cv
|
||||
# else
|
||||
BOOST_PP_EXPAND(#) define BOOST_FT_cv const
|
||||
# endif
|
||||
# else
|
||||
# if !( BOOST_PP_SLOT(1) & (BOOST_FT_const) )
|
||||
BOOST_PP_EXPAND(#) define BOOST_FT_cv volatile
|
||||
# else
|
||||
BOOST_PP_EXPAND(#) define BOOST_FT_cv const volatile
|
||||
# endif
|
||||
# endif
|
||||
BOOST_PP_EXPAND(#) define BOOST_FT_flags BOOST_PP_SLOT(1)
|
||||
BOOST_PP_EXPAND(#) include BOOST_PP_EXPAND BOOST_PP_EMPTY()(<BOOST_FT_variate_file>)
|
||||
|
||||
BOOST_PP_EXPAND(#) undef BOOST_FT_cv
|
||||
BOOST_PP_EXPAND(#) undef BOOST_FT_ell
|
||||
BOOST_PP_EXPAND(#) undef BOOST_FT_nullary_param
|
||||
BOOST_PP_EXPAND(#) undef BOOST_FT_flags
|
||||
BOOST_PP_EXPAND(#) endif
|
||||
BOOST_PP_EXPAND(#) endif
|
||||
#endif
|
||||
|
@ -0,0 +1,283 @@
|
||||
|
||||
// (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 BOOST_FT_mfp 0
|
||||
# define BOOST_FT_syntax BOOST_FT_type_function
|
||||
# if ! ! (4 & (BOOST_FT_variations))
|
||||
# if (519 & (BOOST_FT_cond)) == (BOOST_FT_cond)
|
||||
# define BOOST_FT_ell
|
||||
# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
|
||||
# define BOOST_FT_cv
|
||||
# define BOOST_FT_flags 519
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
|
||||
# undef BOOST_FT_cv
|
||||
# undef BOOST_FT_ell
|
||||
# undef BOOST_FT_nullary_param
|
||||
# undef BOOST_FT_flags
|
||||
# endif
|
||||
# endif
|
||||
# if ! ! (4 & (BOOST_FT_variations))
|
||||
# if (263 & (BOOST_FT_cond)) == (BOOST_FT_cond)
|
||||
# define BOOST_FT_ell ...
|
||||
# define BOOST_FT_nullary_param
|
||||
# define BOOST_FT_cv
|
||||
# define BOOST_FT_flags 263
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
|
||||
# undef BOOST_FT_cv
|
||||
# undef BOOST_FT_ell
|
||||
# undef BOOST_FT_nullary_param
|
||||
# undef BOOST_FT_flags
|
||||
# endif
|
||||
# endif
|
||||
# if !BOOST_FT_NO_CV_FUNC_SUPPORT
|
||||
# if ! ! (4 & (BOOST_FT_variations))
|
||||
# if (1543 & (BOOST_FT_cond)) == (BOOST_FT_cond)
|
||||
# define BOOST_FT_ell
|
||||
# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
|
||||
# define BOOST_FT_cv const
|
||||
# define BOOST_FT_flags 1543
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
|
||||
# undef BOOST_FT_cv
|
||||
# undef BOOST_FT_ell
|
||||
# undef BOOST_FT_nullary_param
|
||||
# undef BOOST_FT_flags
|
||||
# endif
|
||||
# endif
|
||||
# if ! ! (4 & (BOOST_FT_variations))
|
||||
# if (1287 & (BOOST_FT_cond)) == (BOOST_FT_cond)
|
||||
# define BOOST_FT_ell ...
|
||||
# define BOOST_FT_nullary_param
|
||||
# define BOOST_FT_cv const
|
||||
# define BOOST_FT_flags 1287
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
|
||||
# undef BOOST_FT_cv
|
||||
# undef BOOST_FT_ell
|
||||
# undef BOOST_FT_nullary_param
|
||||
# undef BOOST_FT_flags
|
||||
# endif
|
||||
# endif
|
||||
# if ! ! (4 & (BOOST_FT_variations))
|
||||
# if (2567 & (BOOST_FT_cond)) == (BOOST_FT_cond)
|
||||
# define BOOST_FT_ell
|
||||
# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
|
||||
# define BOOST_FT_cv volatile
|
||||
# define BOOST_FT_flags 2567
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
|
||||
# undef BOOST_FT_cv
|
||||
# undef BOOST_FT_ell
|
||||
# undef BOOST_FT_nullary_param
|
||||
# undef BOOST_FT_flags
|
||||
# endif
|
||||
# endif
|
||||
# if ! ! (4 & (BOOST_FT_variations))
|
||||
# if (2311 & (BOOST_FT_cond)) == (BOOST_FT_cond)
|
||||
# define BOOST_FT_ell ...
|
||||
# define BOOST_FT_nullary_param
|
||||
# define BOOST_FT_cv volatile
|
||||
# define BOOST_FT_flags 2311
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
|
||||
# undef BOOST_FT_cv
|
||||
# undef BOOST_FT_ell
|
||||
# undef BOOST_FT_nullary_param
|
||||
# undef BOOST_FT_flags
|
||||
# endif
|
||||
# endif
|
||||
# if ! ! (4 & (BOOST_FT_variations))
|
||||
# if (3591 & (BOOST_FT_cond)) == (BOOST_FT_cond)
|
||||
# define BOOST_FT_ell
|
||||
# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
|
||||
# define BOOST_FT_cv const volatile
|
||||
# define BOOST_FT_flags 3591
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
|
||||
# undef BOOST_FT_cv
|
||||
# undef BOOST_FT_ell
|
||||
# undef BOOST_FT_nullary_param
|
||||
# undef BOOST_FT_flags
|
||||
# endif
|
||||
# endif
|
||||
# if ! ! (4 & (BOOST_FT_variations))
|
||||
# if (3335 & (BOOST_FT_cond)) == (BOOST_FT_cond)
|
||||
# define BOOST_FT_ell ...
|
||||
# define BOOST_FT_nullary_param
|
||||
# define BOOST_FT_cv const volatile
|
||||
# define BOOST_FT_flags 3335
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
|
||||
# undef BOOST_FT_cv
|
||||
# undef BOOST_FT_ell
|
||||
# undef BOOST_FT_nullary_param
|
||||
# undef BOOST_FT_flags
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
# undef BOOST_FT_syntax
|
||||
# define BOOST_FT_syntax BOOST_FT_type_function_pointer
|
||||
# if ! ! (8 & (BOOST_FT_variations))
|
||||
# if (523 & (BOOST_FT_cond)) == (BOOST_FT_cond)
|
||||
# define BOOST_FT_ell
|
||||
# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
|
||||
# define BOOST_FT_cv
|
||||
# define BOOST_FT_flags 523
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
|
||||
# undef BOOST_FT_cv
|
||||
# undef BOOST_FT_ell
|
||||
# undef BOOST_FT_nullary_param
|
||||
# undef BOOST_FT_flags
|
||||
# endif
|
||||
# endif
|
||||
# if ! ! (8 & (BOOST_FT_variations))
|
||||
# if (267 & (BOOST_FT_cond)) == (BOOST_FT_cond)
|
||||
# define BOOST_FT_ell ...
|
||||
# define BOOST_FT_nullary_param
|
||||
# define BOOST_FT_cv
|
||||
# define BOOST_FT_flags 267
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
|
||||
# undef BOOST_FT_cv
|
||||
# undef BOOST_FT_ell
|
||||
# undef BOOST_FT_nullary_param
|
||||
# undef BOOST_FT_flags
|
||||
# endif
|
||||
# endif
|
||||
# undef BOOST_FT_syntax
|
||||
# define BOOST_FT_syntax BOOST_FT_type_function_reference
|
||||
# if ! ! (16 & (BOOST_FT_variations))
|
||||
# if (531 & (BOOST_FT_cond)) == (BOOST_FT_cond)
|
||||
# define BOOST_FT_ell
|
||||
# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
|
||||
# define BOOST_FT_cv
|
||||
# define BOOST_FT_flags 531
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
|
||||
# undef BOOST_FT_cv
|
||||
# undef BOOST_FT_ell
|
||||
# undef BOOST_FT_nullary_param
|
||||
# undef BOOST_FT_flags
|
||||
# endif
|
||||
# endif
|
||||
# if ! ! (16 & (BOOST_FT_variations))
|
||||
# if (275 & (BOOST_FT_cond)) == (BOOST_FT_cond)
|
||||
# define BOOST_FT_ell ...
|
||||
# define BOOST_FT_nullary_param
|
||||
# define BOOST_FT_cv
|
||||
# define BOOST_FT_flags 275
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
|
||||
# undef BOOST_FT_cv
|
||||
# undef BOOST_FT_ell
|
||||
# undef BOOST_FT_nullary_param
|
||||
# undef BOOST_FT_flags
|
||||
# endif
|
||||
# endif
|
||||
# undef BOOST_FT_syntax
|
||||
# undef BOOST_FT_mfp
|
||||
# define BOOST_FT_mfp 1
|
||||
# define BOOST_FT_syntax BOOST_FT_type_member_function_pointer
|
||||
# if ! ! (96 & (BOOST_FT_variations))
|
||||
# if (609 & (BOOST_FT_cond)) == (BOOST_FT_cond)
|
||||
# define BOOST_FT_ell
|
||||
# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
|
||||
# define BOOST_FT_cv
|
||||
# define BOOST_FT_flags 609
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
|
||||
# undef BOOST_FT_cv
|
||||
# undef BOOST_FT_ell
|
||||
# undef BOOST_FT_nullary_param
|
||||
# undef BOOST_FT_flags
|
||||
# endif
|
||||
# endif
|
||||
# if ! ! (96 & (BOOST_FT_variations))
|
||||
# if (353 & (BOOST_FT_cond)) == (BOOST_FT_cond)
|
||||
# define BOOST_FT_ell ...
|
||||
# define BOOST_FT_nullary_param
|
||||
# define BOOST_FT_cv
|
||||
# define BOOST_FT_flags 353
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
|
||||
# undef BOOST_FT_cv
|
||||
# undef BOOST_FT_ell
|
||||
# undef BOOST_FT_nullary_param
|
||||
# undef BOOST_FT_flags
|
||||
# endif
|
||||
# endif
|
||||
# if ! ! (96 & (BOOST_FT_variations))
|
||||
# if (1633 & (BOOST_FT_cond)) == (BOOST_FT_cond)
|
||||
# define BOOST_FT_ell
|
||||
# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
|
||||
# define BOOST_FT_cv const
|
||||
# define BOOST_FT_flags 1633
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
|
||||
# undef BOOST_FT_cv
|
||||
# undef BOOST_FT_ell
|
||||
# undef BOOST_FT_nullary_param
|
||||
# undef BOOST_FT_flags
|
||||
# endif
|
||||
# endif
|
||||
# if ! ! (96 & (BOOST_FT_variations))
|
||||
# if (1377 & (BOOST_FT_cond)) == (BOOST_FT_cond)
|
||||
# define BOOST_FT_ell ...
|
||||
# define BOOST_FT_nullary_param
|
||||
# define BOOST_FT_cv const
|
||||
# define BOOST_FT_flags 1377
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
|
||||
# undef BOOST_FT_cv
|
||||
# undef BOOST_FT_ell
|
||||
# undef BOOST_FT_nullary_param
|
||||
# undef BOOST_FT_flags
|
||||
# endif
|
||||
# endif
|
||||
# if ! ! (96 & (BOOST_FT_variations))
|
||||
# if (2657 & (BOOST_FT_cond)) == (BOOST_FT_cond)
|
||||
# define BOOST_FT_ell
|
||||
# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
|
||||
# define BOOST_FT_cv volatile
|
||||
# define BOOST_FT_flags 2657
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
|
||||
# undef BOOST_FT_cv
|
||||
# undef BOOST_FT_ell
|
||||
# undef BOOST_FT_nullary_param
|
||||
# undef BOOST_FT_flags
|
||||
# endif
|
||||
# endif
|
||||
# if ! ! (96 & (BOOST_FT_variations))
|
||||
# if (2401 & (BOOST_FT_cond)) == (BOOST_FT_cond)
|
||||
# define BOOST_FT_ell ...
|
||||
# define BOOST_FT_nullary_param
|
||||
# define BOOST_FT_cv volatile
|
||||
# define BOOST_FT_flags 2401
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
|
||||
# undef BOOST_FT_cv
|
||||
# undef BOOST_FT_ell
|
||||
# undef BOOST_FT_nullary_param
|
||||
# undef BOOST_FT_flags
|
||||
# endif
|
||||
# endif
|
||||
# if ! ! (96 & (BOOST_FT_variations))
|
||||
# if (3681 & (BOOST_FT_cond)) == (BOOST_FT_cond)
|
||||
# define BOOST_FT_ell
|
||||
# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
|
||||
# define BOOST_FT_cv const volatile
|
||||
# define BOOST_FT_flags 3681
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
|
||||
# undef BOOST_FT_cv
|
||||
# undef BOOST_FT_ell
|
||||
# undef BOOST_FT_nullary_param
|
||||
# undef BOOST_FT_flags
|
||||
# endif
|
||||
# endif
|
||||
# if ! ! (96 & (BOOST_FT_variations))
|
||||
# if (3425 & (BOOST_FT_cond)) == (BOOST_FT_cond)
|
||||
# define BOOST_FT_ell ...
|
||||
# define BOOST_FT_nullary_param
|
||||
# define BOOST_FT_cv const volatile
|
||||
# define BOOST_FT_flags 3425
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
|
||||
# undef BOOST_FT_cv
|
||||
# undef BOOST_FT_ell
|
||||
# undef BOOST_FT_nullary_param
|
||||
# undef BOOST_FT_flags
|
||||
# endif
|
||||
# endif
|
||||
# undef BOOST_FT_syntax
|
||||
# undef BOOST_FT_mfp
|
23
include/boost/function_types/detail/retag_default_cc.hpp
Normal file
23
include/boost/function_types/detail/retag_default_cc.hpp
Normal file
@ -0,0 +1,23 @@
|
||||
|
||||
// (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 BOOST_FT_DETAIL_RETAG_DEFAULT_CC_HPP_INCLUDED
|
||||
#define BOOST_FT_DETAIL_RETAG_DEFAULT_CC_HPP_INCLUDED
|
||||
|
||||
#include <boost/mpl/bitand.hpp>
|
||||
|
||||
#include <boost/function_types/components.hpp>
|
||||
|
||||
#if defined(BOOST_FT_PREPROCESSING_MODE)
|
||||
# include <boost/function_types/detail/pp_retag_default_cc/master.hpp>
|
||||
#else
|
||||
# include <boost/function_types/detail/pp_retag_default_cc/preprocessed.hpp>
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
72
include/boost/function_types/detail/synthesize.hpp
Normal file
72
include/boost/function_types/detail/synthesize.hpp
Normal file
@ -0,0 +1,72 @@
|
||||
|
||||
// (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 BOOST_FT_DETAIL_SYNTHESIZE_HPP_INCLUDED
|
||||
#define BOOST_FT_DETAIL_SYNTHESIZE_HPP_INCLUDED
|
||||
|
||||
#include <cstddef>
|
||||
|
||||
#include <boost/mpl/at.hpp>
|
||||
#include <boost/mpl/size.hpp>
|
||||
|
||||
#include <boost/function_types/config/config.hpp>
|
||||
#include <boost/function_types/property_tags.hpp>
|
||||
#include <boost/function_types/detail/cv_traits.hpp>
|
||||
#include <boost/function_types/detail/retag_default_cc.hpp>
|
||||
|
||||
namespace boost { 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
|
||||
< ::boost::function_types::detail::decode_bits<Bits>::flags
|
||||
, ::boost::function_types::detail::decode_bits<Bits>::cc_id
|
||||
, ::boost::mpl::size<Seq>::value
|
||||
>
|
||||
::template synthesize_impl_i<Seq>
|
||||
{ };
|
||||
|
||||
template<typename Seq, typename Tag>
|
||||
struct synthesize_func
|
||||
: detail::synthesize_impl
|
||||
< Seq
|
||||
, ::boost::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
|
||||
, ::boost::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
|
||||
>
|
||||
{ };
|
||||
|
||||
#define BOOST_FT_variations BOOST_FT_function|BOOST_FT_member_pointer
|
||||
#define BOOST_FT_al_path boost/function_types/detail/synthesize_impl
|
||||
#include <boost/function_types/detail/pp_loop.hpp>
|
||||
|
||||
} } } // namespace ::boost::function_types::detail
|
||||
|
||||
#endif
|
||||
|
@ -0,0 +1,334 @@
|
||||
|
||||
// (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: BOOST_FT_syntax type macro to use
|
||||
// input: BOOST_FT_cc empty or cc specifier
|
||||
// input: BOOST_FT_ell empty or "..."
|
||||
// input: BOOST_FT_cv empty or cv qualifiers
|
||||
// input: BOOST_FT_flags single decimal integer encoding the flags
|
||||
// output: BOOST_FT_n number of component types (arity+1)
|
||||
// output: BOOST_FT_arity current arity
|
||||
// output: BOOST_FT_type macro that expands to the type
|
||||
// output: BOOST_FT_tplargs(p) template arguments with given prefix
|
||||
// output: BOOST_FT_params(p) parameters with given prefix
|
||||
|
||||
# define BOOST_FT_make_type(flags,cc,arity) BOOST_FT_make_type_impl(flags,cc,arity)
|
||||
# define BOOST_FT_make_type_impl(flags,cc,arity) make_type_ ## flags ## _ ## cc ## _ ## arity
|
||||
template< typename R >
|
||||
struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,0)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (BOOST_FT_nullary_param BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 1 >
|
||||
{
|
||||
template<typename S> struct synthesize_impl_i
|
||||
{
|
||||
private:
|
||||
typedef typename mpl::begin<S> ::type iter_0;
|
||||
public:
|
||||
typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,0)
|
||||
< typename mpl::deref< iter_0 > ::type
|
||||
> ::type type;
|
||||
};
|
||||
};
|
||||
template< typename R , typename T0 >
|
||||
struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,1)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,1)
|
||||
< typename mpl::deref< iter_0 > ::type
|
||||
, typename mpl::deref< iter_1 > ::type
|
||||
> ::type type;
|
||||
};
|
||||
};
|
||||
template< typename R , typename T0 , typename T1 >
|
||||
struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,2)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,3)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,4)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,5)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,6)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,7)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,8)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,9)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,10)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type
|
||||
# undef BOOST_FT_make_type_impl
|
||||
|
@ -0,0 +1,326 @@
|
||||
|
||||
// (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: BOOST_FT_syntax type macro to use
|
||||
// input: BOOST_FT_cc empty or cc specifier
|
||||
// input: BOOST_FT_ell empty or "..."
|
||||
// input: BOOST_FT_cv empty or cv qualifiers
|
||||
// input: BOOST_FT_flags single decimal integer encoding the flags
|
||||
// output: BOOST_FT_n number of component types (arity+1)
|
||||
// output: BOOST_FT_arity current arity
|
||||
// output: BOOST_FT_type macro that expands to the type
|
||||
// output: BOOST_FT_tplargs(p) template arguments with given prefix
|
||||
// output: BOOST_FT_params(p) parameters with given prefix
|
||||
|
||||
# define BOOST_FT_make_type(flags,cc,arity) BOOST_FT_make_type_impl(flags,cc,arity)
|
||||
# define BOOST_FT_make_type_impl(flags,cc,arity) make_type_ ## flags ## _ ## cc ## _ ## arity
|
||||
template< typename R , typename T0 >
|
||||
struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,1)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) ( BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,2)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,3)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,4)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,5)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,6)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,7)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,8)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,9)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,10)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type
|
||||
# undef BOOST_FT_make_type_impl
|
||||
|
@ -0,0 +1,517 @@
|
||||
|
||||
// (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: BOOST_FT_syntax type macro to use
|
||||
// input: BOOST_FT_cc empty or cc specifier
|
||||
// input: BOOST_FT_ell empty or "..."
|
||||
// input: BOOST_FT_cv empty or cv qualifiers
|
||||
// input: BOOST_FT_flags single decimal integer encoding the flags
|
||||
// output: BOOST_FT_n number of component types (arity+1)
|
||||
// output: BOOST_FT_arity current arity
|
||||
// output: BOOST_FT_type macro that expands to the type
|
||||
// output: BOOST_FT_tplargs(p) template arguments with given prefix
|
||||
// output: BOOST_FT_params(p) parameters with given prefix
|
||||
|
||||
# include <boost/function_types/detail/synthesize_impl/arity10_0.hpp>
|
||||
# define BOOST_FT_make_type(flags,cc,arity) BOOST_FT_make_type_impl(flags,cc,arity)
|
||||
# define BOOST_FT_make_type_impl(flags,cc,arity) make_type_ ## flags ## _ ## cc ## _ ## arity
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 >
|
||||
struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,11)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,12)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,13)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,14)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,15)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,16)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,17)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,18)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,19)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,20)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type
|
||||
# undef BOOST_FT_make_type_impl
|
||||
|
@ -0,0 +1,527 @@
|
||||
|
||||
// (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: BOOST_FT_syntax type macro to use
|
||||
// input: BOOST_FT_cc empty or cc specifier
|
||||
// input: BOOST_FT_ell empty or "..."
|
||||
// input: BOOST_FT_cv empty or cv qualifiers
|
||||
// input: BOOST_FT_flags single decimal integer encoding the flags
|
||||
// output: BOOST_FT_n number of component types (arity+1)
|
||||
// output: BOOST_FT_arity current arity
|
||||
// output: BOOST_FT_type macro that expands to the type
|
||||
// output: BOOST_FT_tplargs(p) template arguments with given prefix
|
||||
// output: BOOST_FT_params(p) parameters with given prefix
|
||||
|
||||
# include <boost/function_types/detail/synthesize_impl/arity10_1.hpp>
|
||||
# define BOOST_FT_make_type(flags,cc,arity) BOOST_FT_make_type_impl(flags,cc,arity)
|
||||
# define BOOST_FT_make_type_impl(flags,cc,arity) make_type_ ## flags ## _ ## cc ## _ ## arity
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 >
|
||||
struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,11)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,12)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,13)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,14)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,15)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,16)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,17)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,18)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,19)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,20)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type
|
||||
# undef BOOST_FT_make_type_impl
|
||||
|
@ -0,0 +1,717 @@
|
||||
|
||||
// (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: BOOST_FT_syntax type macro to use
|
||||
// input: BOOST_FT_cc empty or cc specifier
|
||||
// input: BOOST_FT_ell empty or "..."
|
||||
// input: BOOST_FT_cv empty or cv qualifiers
|
||||
// input: BOOST_FT_flags single decimal integer encoding the flags
|
||||
// output: BOOST_FT_n number of component types (arity+1)
|
||||
// output: BOOST_FT_arity current arity
|
||||
// output: BOOST_FT_type macro that expands to the type
|
||||
// output: BOOST_FT_tplargs(p) template arguments with given prefix
|
||||
// output: BOOST_FT_params(p) parameters with given prefix
|
||||
|
||||
# include <boost/function_types/detail/synthesize_impl/arity20_0.hpp>
|
||||
# define BOOST_FT_make_type(flags,cc,arity) BOOST_FT_make_type_impl(flags,cc,arity)
|
||||
# define BOOST_FT_make_type_impl(flags,cc,arity) make_type_ ## flags ## _ ## cc ## _ ## arity
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 >
|
||||
struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,21)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,22)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,23)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,24)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,25)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,26)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,27)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,28)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,29)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,30)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type
|
||||
# undef BOOST_FT_make_type_impl
|
||||
|
@ -0,0 +1,727 @@
|
||||
|
||||
// (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: BOOST_FT_syntax type macro to use
|
||||
// input: BOOST_FT_cc empty or cc specifier
|
||||
// input: BOOST_FT_ell empty or "..."
|
||||
// input: BOOST_FT_cv empty or cv qualifiers
|
||||
// input: BOOST_FT_flags single decimal integer encoding the flags
|
||||
// output: BOOST_FT_n number of component types (arity+1)
|
||||
// output: BOOST_FT_arity current arity
|
||||
// output: BOOST_FT_type macro that expands to the type
|
||||
// output: BOOST_FT_tplargs(p) template arguments with given prefix
|
||||
// output: BOOST_FT_params(p) parameters with given prefix
|
||||
|
||||
# include <boost/function_types/detail/synthesize_impl/arity20_1.hpp>
|
||||
# define BOOST_FT_make_type(flags,cc,arity) BOOST_FT_make_type_impl(flags,cc,arity)
|
||||
# define BOOST_FT_make_type_impl(flags,cc,arity) make_type_ ## flags ## _ ## cc ## _ ## arity
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 >
|
||||
struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,21)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,22)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,23)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,24)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,25)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,26)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,27)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,28)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,29)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,30)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type
|
||||
# undef BOOST_FT_make_type_impl
|
||||
|
@ -0,0 +1,917 @@
|
||||
|
||||
// (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: BOOST_FT_syntax type macro to use
|
||||
// input: BOOST_FT_cc empty or cc specifier
|
||||
// input: BOOST_FT_ell empty or "..."
|
||||
// input: BOOST_FT_cv empty or cv qualifiers
|
||||
// input: BOOST_FT_flags single decimal integer encoding the flags
|
||||
// output: BOOST_FT_n number of component types (arity+1)
|
||||
// output: BOOST_FT_arity current arity
|
||||
// output: BOOST_FT_type macro that expands to the type
|
||||
// output: BOOST_FT_tplargs(p) template arguments with given prefix
|
||||
// output: BOOST_FT_params(p) parameters with given prefix
|
||||
|
||||
# include <boost/function_types/detail/synthesize_impl/arity30_0.hpp>
|
||||
# define BOOST_FT_make_type(flags,cc,arity) BOOST_FT_make_type_impl(flags,cc,arity)
|
||||
# define BOOST_FT_make_type_impl(flags,cc,arity) make_type_ ## flags ## _ ## cc ## _ ## arity
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 >
|
||||
struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,31)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,32)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,33)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,34)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,35)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,36)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,37)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,38)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,39)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,40)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type
|
||||
# undef BOOST_FT_make_type_impl
|
||||
|
@ -0,0 +1,927 @@
|
||||
|
||||
// (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: BOOST_FT_syntax type macro to use
|
||||
// input: BOOST_FT_cc empty or cc specifier
|
||||
// input: BOOST_FT_ell empty or "..."
|
||||
// input: BOOST_FT_cv empty or cv qualifiers
|
||||
// input: BOOST_FT_flags single decimal integer encoding the flags
|
||||
// output: BOOST_FT_n number of component types (arity+1)
|
||||
// output: BOOST_FT_arity current arity
|
||||
// output: BOOST_FT_type macro that expands to the type
|
||||
// output: BOOST_FT_tplargs(p) template arguments with given prefix
|
||||
// output: BOOST_FT_params(p) parameters with given prefix
|
||||
|
||||
# include <boost/function_types/detail/synthesize_impl/arity30_1.hpp>
|
||||
# define BOOST_FT_make_type(flags,cc,arity) BOOST_FT_make_type_impl(flags,cc,arity)
|
||||
# define BOOST_FT_make_type_impl(flags,cc,arity) make_type_ ## flags ## _ ## cc ## _ ## arity
|
||||
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 >
|
||||
struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,31)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,32)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,33)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,34)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,35)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,36)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,37)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,38)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,39)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,40)
|
||||
{
|
||||
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 BOOST_FT_ell) BOOST_FT_cv ;
|
||||
};
|
||||
template< >
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_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::BOOST_FT_make_type(BOOST_FT_flags,BOOST_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 BOOST_FT_make_type
|
||||
# undef BOOST_FT_make_type_impl
|
||||
|
1117
include/boost/function_types/detail/synthesize_impl/arity50_0.hpp
Normal file
1117
include/boost/function_types/detail/synthesize_impl/arity50_0.hpp
Normal file
File diff suppressed because it is too large
Load Diff
1127
include/boost/function_types/detail/synthesize_impl/arity50_1.hpp
Normal file
1127
include/boost/function_types/detail/synthesize_impl/arity50_1.hpp
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,87 @@
|
||||
|
||||
// (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 BOOST_FT_ARITY_LOOP_PREFIX
|
||||
|
||||
# ifndef BOOST_FT_DETAIL_SYNTHESIZE_IMPL_MASTER_HPP_INCLUDED
|
||||
# define BOOST_FT_DETAIL_SYNTHESIZE_IMPL_MASTER_HPP_INCLUDED
|
||||
# include <boost/preprocessor/cat.hpp>
|
||||
# include <boost/preprocessor/arithmetic/dec.hpp>
|
||||
# include <boost/preprocessor/iteration/local.hpp>
|
||||
# include <boost/preprocessor/facilities/empty.hpp>
|
||||
# include <boost/preprocessor/facilities/identity.hpp>
|
||||
# endif
|
||||
|
||||
# define BOOST_FT_type_name type
|
||||
|
||||
# ifdef BOOST_FT_flags
|
||||
# define BOOST_FT_make_type(flags,cc,arity) BOOST_FT_make_type_impl(flags,cc,arity)
|
||||
# define BOOST_FT_make_type_impl(flags,cc,arity) make_type_ ## flags ## _ ## cc ## _ ## arity
|
||||
# else
|
||||
BOOST_PP_EXPAND(#) define BOOST_FT_make_type(flags,cc,arity) BOOST_FT_make_type_impl(flags,cc,arity)
|
||||
BOOST_PP_EXPAND(#) define BOOST_FT_make_type_impl(flags,cc,arity) make_type_ ## flags ## _ ## cc ## _ ## arity
|
||||
# endif
|
||||
|
||||
# define BOOST_FT_iter(i) BOOST_PP_CAT(iter_,i)
|
||||
|
||||
#elif BOOST_FT_ARITY_LOOP_IS_ITERATING
|
||||
|
||||
template< BOOST_FT_tplargs(BOOST_PP_IDENTITY(typename)) >
|
||||
struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,BOOST_FT_arity)
|
||||
{
|
||||
typedef BOOST_FT_type ;
|
||||
};
|
||||
|
||||
template<>
|
||||
struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, BOOST_FT_n >
|
||||
{
|
||||
template<typename S> struct synthesize_impl_i
|
||||
{
|
||||
private:
|
||||
typedef typename mpl::begin<S>::type BOOST_FT_iter(0);
|
||||
# if BOOST_FT_n > 1
|
||||
# define BOOST_PP_LOCAL_MACRO(i) typedef typename mpl::next< \
|
||||
BOOST_FT_iter(BOOST_PP_DEC(i)) >::type BOOST_FT_iter(i);
|
||||
# define BOOST_PP_LOCAL_LIMITS (1,BOOST_FT_n-1)
|
||||
# include BOOST_PP_LOCAL_ITERATE()
|
||||
# endif
|
||||
public:
|
||||
typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,BOOST_FT_arity)
|
||||
< typename mpl::deref< BOOST_FT_iter(0) >::type
|
||||
# if BOOST_FT_mfp
|
||||
, typename detail::cv_traits<
|
||||
typename mpl::deref< BOOST_FT_iter(1) >::type >::type
|
||||
# endif
|
||||
# if BOOST_FT_n > (BOOST_FT_mfp+1)
|
||||
# define BOOST_PP_LOCAL_LIMITS (BOOST_FT_mfp+1,BOOST_FT_n-1)
|
||||
# define BOOST_PP_LOCAL_MACRO(i) \
|
||||
, typename mpl::deref< BOOST_FT_iter(i) >::type
|
||||
# include BOOST_PP_LOCAL_ITERATE()
|
||||
# endif
|
||||
>::type type;
|
||||
};
|
||||
};
|
||||
|
||||
#elif BOOST_FT_ARITY_LOOP_SUFFIX
|
||||
|
||||
# ifdef BOOST_FT_flags
|
||||
# undef BOOST_FT_make_type
|
||||
# undef BOOST_FT_make_type_impl
|
||||
# else
|
||||
BOOST_PP_EXPAND(#) undef BOOST_FT_make_type
|
||||
BOOST_PP_EXPAND(#) undef BOOST_FT_make_type_impl
|
||||
# endif
|
||||
# undef BOOST_FT_iter
|
||||
# undef BOOST_FT_type_name
|
||||
|
||||
#else
|
||||
# error "attempt to use arity loop master file without loop"
|
||||
#endif
|
||||
|
47
include/boost/function_types/detail/to_sequence.hpp
Normal file
47
include/boost/function_types/detail/to_sequence.hpp
Normal file
@ -0,0 +1,47 @@
|
||||
|
||||
// (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 BOOST_FT_DETAIL_TO_SEQUENCE_HPP_INCLUDED
|
||||
#define BOOST_FT_DETAIL_TO_SEQUENCE_HPP_INCLUDED
|
||||
|
||||
#include <boost/mpl/eval_if.hpp>
|
||||
#include <boost/mpl/identity.hpp>
|
||||
#include <boost/mpl/is_sequence.hpp>
|
||||
#include <boost/mpl/placeholders.hpp>
|
||||
#include <boost/type_traits/add_reference.hpp>
|
||||
|
||||
#include <boost/function_types/is_callable_builtin.hpp>
|
||||
|
||||
namespace boost { 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 BOOST_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 ::boost::function_types::detail
|
||||
|
||||
#endif
|
||||
|
38
include/boost/function_types/function_arity.hpp
Normal file
38
include/boost/function_types/function_arity.hpp
Normal file
@ -0,0 +1,38 @@
|
||||
|
||||
// (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 BOOST_FT_FUNCTION_ARITY_HPP_INCLUDED
|
||||
#define BOOST_FT_FUNCTION_ARITY_HPP_INCLUDED
|
||||
|
||||
#include <boost/blank.hpp>
|
||||
#include <boost/mpl/if.hpp>
|
||||
|
||||
#include <boost/mpl/aux_/lambda_support.hpp>
|
||||
#include <boost/type_traits/detail/template_arity_spec.hpp>
|
||||
|
||||
#include <boost/function_types/is_callable_builtin.hpp>
|
||||
#include <boost/function_types/components.hpp>
|
||||
|
||||
namespace boost
|
||||
{
|
||||
namespace function_types
|
||||
{
|
||||
template<typename T> struct function_arity
|
||||
: mpl::if_
|
||||
< function_types::is_callable_builtin<T>
|
||||
, typename components<T>::function_arity, boost::blank
|
||||
>::type
|
||||
{
|
||||
BOOST_MPL_AUX_LAMBDA_SUPPORT(1,function_arity,(T))
|
||||
};
|
||||
}
|
||||
BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1,function_types::function_arity)
|
||||
}
|
||||
|
||||
#endif
|
||||
|
32
include/boost/function_types/function_pointer.hpp
Normal file
32
include/boost/function_types/function_pointer.hpp
Normal file
@ -0,0 +1,32 @@
|
||||
|
||||
// (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 BOOST_FT_FUNCTION_POINTER_HPP_INCLUDED
|
||||
#define BOOST_FT_FUNCTION_POINTER_HPP_INCLUDED
|
||||
|
||||
#include <boost/mpl/aux_/lambda_support.hpp>
|
||||
#include <boost/type_traits/detail/template_arity_spec.hpp>
|
||||
|
||||
#include <boost/function_types/function_type.hpp>
|
||||
|
||||
namespace boost
|
||||
{
|
||||
namespace function_types
|
||||
{
|
||||
template<typename Types, typename Tag = null_tag> struct function_pointer
|
||||
{
|
||||
typedef typename function_types::function_type<Types,Tag>::type * type;
|
||||
|
||||
BOOST_MPL_AUX_LAMBDA_SUPPORT(2,function_pointer,(Types,Tag))
|
||||
};
|
||||
}
|
||||
BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::function_pointer)
|
||||
}
|
||||
|
||||
#endif
|
||||
|
32
include/boost/function_types/function_reference.hpp
Normal file
32
include/boost/function_types/function_reference.hpp
Normal file
@ -0,0 +1,32 @@
|
||||
|
||||
// (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 BOOST_FT_FUNCTION_REFERENCE_HPP_INCLUDED
|
||||
#define BOOST_FT_FUNCTION_REFERENCE_HPP_INCLUDED
|
||||
|
||||
#include <boost/mpl/aux_/lambda_support.hpp>
|
||||
#include <boost/type_traits/detail/template_arity_spec.hpp>
|
||||
|
||||
#include <boost/function_types/function_type.hpp>
|
||||
|
||||
namespace boost
|
||||
{
|
||||
namespace function_types
|
||||
{
|
||||
template<typename Types, typename Tag = null_tag> struct function_reference
|
||||
{
|
||||
typedef typename function_types::function_type<Types,Tag>::type & type;
|
||||
|
||||
BOOST_MPL_AUX_LAMBDA_SUPPORT(2,function_reference,(Types,Tag))
|
||||
};
|
||||
}
|
||||
BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::function_reference)
|
||||
}
|
||||
|
||||
#endif
|
||||
|
29
include/boost/function_types/function_type.hpp
Normal file
29
include/boost/function_types/function_type.hpp
Normal file
@ -0,0 +1,29 @@
|
||||
|
||||
// (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 BOOST_FT_FUNCTION_TYPE_HPP_INCLUDED
|
||||
#define BOOST_FT_FUNCTION_TYPE_HPP_INCLUDED
|
||||
|
||||
#include <boost/function_types/detail/synthesize.hpp>
|
||||
#include <boost/function_types/detail/to_sequence.hpp>
|
||||
|
||||
namespace boost
|
||||
{
|
||||
namespace function_types
|
||||
{
|
||||
template<typename Types, typename Tag = null_tag> struct function_type
|
||||
: detail::synthesize_func<typename detail::to_sequence<Types>::type, Tag>
|
||||
{
|
||||
BOOST_MPL_AUX_LAMBDA_SUPPORT(2,function_type,(Types,Tag))
|
||||
};
|
||||
}
|
||||
BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::function_type)
|
||||
}
|
||||
|
||||
#endif
|
||||
|
35
include/boost/function_types/is_callable_builtin.hpp
Normal file
35
include/boost/function_types/is_callable_builtin.hpp
Normal file
@ -0,0 +1,35 @@
|
||||
|
||||
// (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 BOOST_FT_IS_CALLABLE_BUILTIN_HPP_INCLUDED
|
||||
#define BOOST_FT_IS_CALLABLE_BUILTIN_HPP_INCLUDED
|
||||
|
||||
#include <boost/mpl/aux_/lambda_support.hpp>
|
||||
#include <boost/type_traits/detail/template_arity_spec.hpp>
|
||||
|
||||
#include <boost/function_types/components.hpp>
|
||||
|
||||
namespace boost
|
||||
{
|
||||
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>
|
||||
>
|
||||
{
|
||||
BOOST_MPL_AUX_LAMBDA_SUPPORT(2,is_callable_builtin,(T,Tag))
|
||||
};
|
||||
}
|
||||
BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::is_callable_builtin)
|
||||
}
|
||||
|
||||
#endif
|
||||
|
34
include/boost/function_types/is_function.hpp
Normal file
34
include/boost/function_types/is_function.hpp
Normal file
@ -0,0 +1,34 @@
|
||||
|
||||
// (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 BOOST_FT_IS_FUNCTION_HPP_INCLUDED
|
||||
#define BOOST_FT_IS_FUNCTION_HPP_INCLUDED
|
||||
|
||||
#include <boost/mpl/aux_/lambda_support.hpp>
|
||||
#include <boost/type_traits/detail/template_arity_spec.hpp>
|
||||
|
||||
#include <boost/function_types/components.hpp>
|
||||
|
||||
namespace boost
|
||||
{
|
||||
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>
|
||||
>
|
||||
{
|
||||
BOOST_MPL_AUX_LAMBDA_SUPPORT(2,is_function,(T,Tag))
|
||||
};
|
||||
}
|
||||
BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::is_function)
|
||||
}
|
||||
|
||||
#endif
|
||||
|
34
include/boost/function_types/is_function_pointer.hpp
Normal file
34
include/boost/function_types/is_function_pointer.hpp
Normal file
@ -0,0 +1,34 @@
|
||||
|
||||
// (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 BOOST_FT_IS_FUNCTION_POINTER_HPP_INCLUDED
|
||||
#define BOOST_FT_IS_FUNCTION_POINTER_HPP_INCLUDED
|
||||
|
||||
#include <boost/mpl/aux_/lambda_support.hpp>
|
||||
#include <boost/type_traits/detail/template_arity_spec.hpp>
|
||||
|
||||
#include <boost/function_types/components.hpp>
|
||||
|
||||
namespace boost
|
||||
{
|
||||
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>
|
||||
>
|
||||
{
|
||||
BOOST_MPL_AUX_LAMBDA_SUPPORT(2,is_function_pointer,(T,Tag))
|
||||
};
|
||||
}
|
||||
BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::is_function_pointer)
|
||||
}
|
||||
|
||||
#endif
|
34
include/boost/function_types/is_function_reference.hpp
Normal file
34
include/boost/function_types/is_function_reference.hpp
Normal file
@ -0,0 +1,34 @@
|
||||
|
||||
// (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 BOOST_FT_IS_FUNCTION_REFERENCE_HPP_INCLUDED
|
||||
#define BOOST_FT_IS_FUNCTION_REFERENCE_HPP_INCLUDED
|
||||
|
||||
#include <boost/mpl/aux_/lambda_support.hpp>
|
||||
#include <boost/type_traits/detail/template_arity_spec.hpp>
|
||||
|
||||
#include <boost/function_types/components.hpp>
|
||||
|
||||
namespace boost
|
||||
{
|
||||
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> >
|
||||
{
|
||||
BOOST_MPL_AUX_LAMBDA_SUPPORT(2,is_function_reference,(T,Tag))
|
||||
};
|
||||
}
|
||||
BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::is_function_reference)
|
||||
}
|
||||
|
||||
#endif
|
||||
|
33
include/boost/function_types/is_member_function_pointer.hpp
Normal file
33
include/boost/function_types/is_member_function_pointer.hpp
Normal file
@ -0,0 +1,33 @@
|
||||
|
||||
// (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 BOOST_FT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
|
||||
#define BOOST_FT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
|
||||
|
||||
#include <boost/mpl/aux_/lambda_support.hpp>
|
||||
#include <boost/type_traits/detail/template_arity_spec.hpp>
|
||||
|
||||
#include <boost/function_types/components.hpp>
|
||||
|
||||
namespace boost
|
||||
{
|
||||
namespace function_types
|
||||
{
|
||||
template< typename T, typename Tag = null_tag >
|
||||
struct is_member_function_pointer
|
||||
: function_types::represents
|
||||
< function_types::components<T>
|
||||
, function_types::tag<Tag ,detail::member_function_pointer_tag> >
|
||||
{
|
||||
BOOST_MPL_AUX_LAMBDA_SUPPORT(2,is_member_function_pointer,(T,Tag))
|
||||
};
|
||||
}
|
||||
BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::is_member_function_pointer)
|
||||
}
|
||||
#endif
|
||||
|
35
include/boost/function_types/is_member_object_pointer.hpp
Normal file
35
include/boost/function_types/is_member_object_pointer.hpp
Normal file
@ -0,0 +1,35 @@
|
||||
|
||||
// (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 BOOST_FT_IS_MEMBER_OBJECT_POINTER_HPP_INCLUDED
|
||||
#define BOOST_FT_IS_MEMBER_OBJECT_POINTER_HPP_INCLUDED
|
||||
|
||||
#include <boost/mpl/aux_/lambda_support.hpp>
|
||||
#include <boost/type_traits/detail/template_arity_spec.hpp>
|
||||
|
||||
#include <boost/function_types/components.hpp>
|
||||
|
||||
namespace boost
|
||||
{
|
||||
namespace function_types
|
||||
{
|
||||
template< typename T, typename Tag = null_tag >
|
||||
struct is_member_object_pointer
|
||||
: function_types::represents
|
||||
< function_types::components<T>
|
||||
, function_types::tag<Tag,detail::member_object_pointer_tag>
|
||||
>
|
||||
{
|
||||
BOOST_MPL_AUX_LAMBDA_SUPPORT(2,is_member_object_pointer,(T,Tag))
|
||||
};
|
||||
}
|
||||
BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::is_member_object_pointer)
|
||||
}
|
||||
|
||||
#endif
|
||||
|
34
include/boost/function_types/is_member_pointer.hpp
Normal file
34
include/boost/function_types/is_member_pointer.hpp
Normal file
@ -0,0 +1,34 @@
|
||||
|
||||
// (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 BOOST_FT_IS_MEMBER_POINTER_HPP_INCLUDED
|
||||
#define BOOST_FT_IS_MEMBER_POINTER_HPP_INCLUDED
|
||||
|
||||
#include <boost/mpl/aux_/lambda_support.hpp>
|
||||
#include <boost/type_traits/detail/template_arity_spec.hpp>
|
||||
|
||||
#include <boost/function_types/components.hpp>
|
||||
|
||||
namespace boost
|
||||
{
|
||||
namespace function_types
|
||||
{
|
||||
template< typename T, typename Tag = null_tag >
|
||||
struct is_member_pointer
|
||||
: function_types::represents
|
||||
< function_types::components<T>
|
||||
, function_types::tag<Tag ,detail::member_pointer_tag>
|
||||
>
|
||||
{
|
||||
BOOST_MPL_AUX_LAMBDA_SUPPORT(2,is_member_pointer,(T,Tag))
|
||||
};
|
||||
}
|
||||
BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::is_member_pointer)
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -0,0 +1,35 @@
|
||||
|
||||
// (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 BOOST_FT_IS_NONMEMBER_CALLABLE_BUILTIN_HPP_INCLUDED
|
||||
#define BOOST_FT_IS_NONMEMBER_CALLABLE_BUILTIN_HPP_INCLUDED
|
||||
|
||||
#include <boost/mpl/aux_/lambda_support.hpp>
|
||||
#include <boost/type_traits/detail/template_arity_spec.hpp>
|
||||
|
||||
#include <boost/function_types/components.hpp>
|
||||
|
||||
namespace boost
|
||||
{
|
||||
namespace function_types
|
||||
{
|
||||
template< typename T, typename Tag = null_tag >
|
||||
struct is_nonmember_callable_builtin
|
||||
: function_types::represents
|
||||
< function_types::components<T>
|
||||
, function_types::tag<Tag,detail::nonmember_callable_builtin_tag>
|
||||
>
|
||||
{
|
||||
BOOST_MPL_AUX_LAMBDA_SUPPORT(2,is_nonmember_callable_builtin,(T,Tag))
|
||||
};
|
||||
}
|
||||
BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::is_nonmember_callable_builtin)
|
||||
}
|
||||
|
||||
#endif
|
||||
|
33
include/boost/function_types/member_function_pointer.hpp
Normal file
33
include/boost/function_types/member_function_pointer.hpp
Normal file
@ -0,0 +1,33 @@
|
||||
|
||||
// (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 BOOST_FT_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
|
||||
#define BOOST_FT_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
|
||||
|
||||
#include <boost/mpl/aux_/lambda_support.hpp>
|
||||
#include <boost/type_traits/detail/template_arity_spec.hpp>
|
||||
|
||||
#include <boost/function_types/detail/synthesize.hpp>
|
||||
#include <boost/function_types/detail/to_sequence.hpp>
|
||||
|
||||
namespace boost
|
||||
{
|
||||
namespace function_types
|
||||
{
|
||||
template<typename Types, typename Tag = null_tag>
|
||||
struct member_function_pointer
|
||||
: detail::synthesize_mfp< typename detail::to_sequence<Types>::type, Tag >
|
||||
{
|
||||
BOOST_MPL_AUX_LAMBDA_SUPPORT(2,member_function_pointer,(Types,Tag))
|
||||
};
|
||||
}
|
||||
BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::member_function_pointer)
|
||||
}
|
||||
|
||||
#endif
|
||||
|
55
include/boost/function_types/parameter_types.hpp
Normal file
55
include/boost/function_types/parameter_types.hpp
Normal file
@ -0,0 +1,55 @@
|
||||
|
||||
// (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 BOOST_FT_PARAMETER_TYPES_HPP_INCLUDED
|
||||
#define BOOST_FT_PARAMETER_TYPES_HPP_INCLUDED
|
||||
|
||||
#include <boost/blank.hpp>
|
||||
#include <boost/mpl/if.hpp>
|
||||
|
||||
#include <boost/mpl/aux_/lambda_support.hpp>
|
||||
#include <boost/type_traits/detail/template_arity_spec.hpp>
|
||||
|
||||
#include <boost/mpl/pop_front.hpp>
|
||||
|
||||
#include <boost/function_types/is_callable_builtin.hpp>
|
||||
#include <boost/function_types/components.hpp>
|
||||
|
||||
namespace boost
|
||||
{
|
||||
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>, boost::blank
|
||||
>::type
|
||||
{
|
||||
BOOST_MPL_AUX_LAMBDA_SUPPORT(2,parameter_types,(T,ClassTypeTransform))
|
||||
};
|
||||
}
|
||||
BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::parameter_types)
|
||||
}
|
||||
|
||||
#endif
|
||||
|
149
include/boost/function_types/property_tags.hpp
Normal file
149
include/boost/function_types/property_tags.hpp
Normal file
@ -0,0 +1,149 @@
|
||||
|
||||
// (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 BOOST_FT_DETAIL_TAGS_HPP_INCLUDED
|
||||
#define BOOST_FT_DETAIL_TAGS_HPP_INCLUDED
|
||||
|
||||
#include <cstddef>
|
||||
|
||||
#include <boost/type_traits/integral_constant.hpp>
|
||||
#include <boost/mpl/bitxor.hpp>
|
||||
|
||||
|
||||
namespace boost { namespace function_types {
|
||||
|
||||
namespace detail
|
||||
{
|
||||
typedef long bits_t;
|
||||
|
||||
template<bits_t Value> struct constant
|
||||
: boost::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<
|
||||
::boost::function_types::detail::encode_bits_impl<Bits,CCID>::value
|
||||
>
|
||||
{ };
|
||||
|
||||
template<class LHS, class RHS> struct compound_tag
|
||||
{
|
||||
typedef constant<
|
||||
::boost::function_types::detail::tag_ice
|
||||
< ::boost::function_types::detail::bits<LHS>::value
|
||||
, ::boost::function_types::detail::mask<LHS>::value
|
||||
, ::boost::function_types::detail::bits<RHS>::value
|
||||
, ::boost::function_types::detail::mask<RHS>::value
|
||||
>::combined_bits
|
||||
> bits;
|
||||
|
||||
typedef constant<
|
||||
::boost::function_types::detail::tag_ice
|
||||
< ::boost::function_types::detail::bits<LHS>::value
|
||||
, ::boost::function_types::detail::mask<LHS>::value
|
||||
, ::boost::function_types::detail::bits<RHS>::value
|
||||
, ::boost::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
|
||||
: boost::integral_constant<bool,
|
||||
::boost::function_types::detail::tag_ice
|
||||
< ::boost::function_types::detail::bits<Tag>::value
|
||||
, ::boost::function_types::detail::mask<Tag>::value
|
||||
, ::boost::function_types::detail::bits<QueryTag>::value
|
||||
, ::boost::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 BOOST_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<
|
||||
::boost::function_types::detail::tag_ice
|
||||
< ::boost::function_types::detail::bits<Tag>::value
|
||||
, ::boost::function_types::detail::mask<Tag>::value
|
||||
, ::boost::function_types::detail::bits<QueryTag>::value
|
||||
, ::boost::function_types::detail::mask<QueryTag>::value
|
||||
>::extracted_bits
|
||||
> bits;
|
||||
|
||||
typedef detail::constant<
|
||||
::boost::function_types::detail::mask<QueryTag>::value
|
||||
> mask;
|
||||
};
|
||||
|
||||
} } // namespace ::boost::function_types
|
||||
|
||||
#include <boost/function_types/detail/pp_tags/preprocessed.hpp>
|
||||
|
||||
namespace boost { namespace function_types {
|
||||
#define BOOST_FT_cc_file boost/function_types/detail/pp_tags/cc_tag.hpp
|
||||
#include <boost/function_types/detail/pp_loop.hpp>
|
||||
} } // namespace boost::function_types
|
||||
|
||||
#endif
|
||||
|
50
include/boost/function_types/result_type.hpp
Normal file
50
include/boost/function_types/result_type.hpp
Normal file
@ -0,0 +1,50 @@
|
||||
|
||||
// (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 BOOST_FT_RESULT_TYPE_HPP_INCLUDED
|
||||
#define BOOST_FT_RESULT_TYPE_HPP_INCLUDED
|
||||
|
||||
#include <boost/blank.hpp>
|
||||
#include <boost/mpl/if.hpp>
|
||||
|
||||
#include <boost/mpl/aux_/lambda_support.hpp>
|
||||
#include <boost/type_traits/detail/template_arity_spec.hpp>
|
||||
|
||||
#include <boost/mpl/at.hpp>
|
||||
|
||||
#include <boost/function_types/is_callable_builtin.hpp>
|
||||
#include <boost/function_types/components.hpp>
|
||||
|
||||
namespace boost
|
||||
{
|
||||
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>, boost::blank
|
||||
>::type
|
||||
{
|
||||
BOOST_MPL_AUX_LAMBDA_SUPPORT(1,result_type,(T))
|
||||
};
|
||||
}
|
||||
BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1,function_types::result_type)
|
||||
}
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user