From 876fff56e77537bdf64aae12513019b2d923d201 Mon Sep 17 00:00:00 2001 From: Tobias Schwinger Date: Sat, 1 Dec 2007 20:52:00 +0000 Subject: [PATCH 01/34] Using central stylesheet now. [SVN r41554] --- doc/Jamfile | 1 + .../boost_functiontypes/about_tag_types.html | 2 +- .../boost_functiontypes/acknowledgements.html | 2 +- .../boost_functiontypes/introduction.html | 2 +- doc/html/boost_functiontypes/rationale.html | 18 +- doc/html/boost_functiontypes/reference.html | 2 +- .../reference/classification.html | 2 +- .../reference/decomposition.html | 2 +- .../boost_functiontypes/reference/macros.html | 2 +- .../reference/synthesis.html | 2 +- .../reference/tag_types.html | 2 +- doc/html/boost_functiontypes/use_cases.html | 2 +- doc/html/boostbook.css | 528 ------------------ doc/html/index.html | 6 +- 14 files changed, 23 insertions(+), 550 deletions(-) delete mode 100644 doc/html/boostbook.css diff --git a/doc/Jamfile b/doc/Jamfile index 5b46953..b4d7c2a 100644 --- a/doc/Jamfile +++ b/doc/Jamfile @@ -13,6 +13,7 @@ boostbook standalone : boost.root=../../../.. boost.libraries=../../../libraries.htm + html.stylesheet=../../../../doc/html/boostbook.css chunk.first.sections=1 chunk.section.depth=2 generate.section.toc.level=2 diff --git a/doc/html/boost_functiontypes/about_tag_types.html b/doc/html/boost_functiontypes/about_tag_types.html index 217b2ab..d16c916 100644 --- a/doc/html/boost_functiontypes/about_tag_types.html +++ b/doc/html/boost_functiontypes/about_tag_types.html @@ -2,7 +2,7 @@ About Tag Types - + diff --git a/doc/html/boost_functiontypes/acknowledgements.html b/doc/html/boost_functiontypes/acknowledgements.html index e8c7c26..4d335cd 100644 --- a/doc/html/boost_functiontypes/acknowledgements.html +++ b/doc/html/boost_functiontypes/acknowledgements.html @@ -2,7 +2,7 @@ Acknowledgements - + diff --git a/doc/html/boost_functiontypes/introduction.html b/doc/html/boost_functiontypes/introduction.html index 58151d4..8287622 100644 --- a/doc/html/boost_functiontypes/introduction.html +++ b/doc/html/boost_functiontypes/introduction.html @@ -2,7 +2,7 @@ Introduction - + diff --git a/doc/html/boost_functiontypes/rationale.html b/doc/html/boost_functiontypes/rationale.html index 1b71df4..475a795 100644 --- a/doc/html/boost_functiontypes/rationale.html +++ b/doc/html/boost_functiontypes/rationale.html @@ -2,7 +2,7 @@ Rationale - + @@ -26,7 +26,7 @@

- + Error handling rationale

@@ -41,7 +41,7 @@ can be spotted easily.

- + Why MPL Sequences?

@@ -54,7 +54,7 @@ so another reason is interoperability.

- + Pointer to member object types

@@ -63,7 +63,7 @@ functionals.

- + The ClassTransform template parameter

@@ -80,7 +80,7 @@ all parameters uniformly.

- + Why tag types?

@@ -99,7 +99,7 @@ with older compilers.

- + Is it safe to have the synthesis templates take a callable builtin type or an MPL sequence as the first template argument? @@ -114,7 +114,7 @@ type a sequence have been included, which can easily violate the ODR.

- + Why does the hidden this parameter count for the function arity of member functions? @@ -128,7 +128,7 @@ function_arity">function_arity<T>::value

- + Why ignore top-level cv-qualifiers on pointers?

diff --git a/doc/html/boost_functiontypes/reference.html b/doc/html/boost_functiontypes/reference.html index f54c521..91fe6f3 100644 --- a/doc/html/boost_functiontypes/reference.html +++ b/doc/html/boost_functiontypes/reference.html @@ -2,7 +2,7 @@ Reference - + diff --git a/doc/html/boost_functiontypes/reference/classification.html b/doc/html/boost_functiontypes/reference/classification.html index 7ef1d9e..699dae9 100644 --- a/doc/html/boost_functiontypes/reference/classification.html +++ b/doc/html/boost_functiontypes/reference/classification.html @@ -3,7 +3,7 @@ Class templates for type classification - + diff --git a/doc/html/boost_functiontypes/reference/decomposition.html b/doc/html/boost_functiontypes/reference/decomposition.html index 91ebf50..bb1b431 100644 --- a/doc/html/boost_functiontypes/reference/decomposition.html +++ b/doc/html/boost_functiontypes/reference/decomposition.html @@ -3,7 +3,7 @@ Class templates for type decomposition - + diff --git a/doc/html/boost_functiontypes/reference/macros.html b/doc/html/boost_functiontypes/reference/macros.html index 24c18db..48cfda6 100644 --- a/doc/html/boost_functiontypes/reference/macros.html +++ b/doc/html/boost_functiontypes/reference/macros.html @@ -2,7 +2,7 @@ Macros - + diff --git a/doc/html/boost_functiontypes/reference/synthesis.html b/doc/html/boost_functiontypes/reference/synthesis.html index 367db36..f1bed9f 100644 --- a/doc/html/boost_functiontypes/reference/synthesis.html +++ b/doc/html/boost_functiontypes/reference/synthesis.html @@ -3,7 +3,7 @@ Class templates for type synthesis - + diff --git a/doc/html/boost_functiontypes/reference/tag_types.html b/doc/html/boost_functiontypes/reference/tag_types.html index eb40aac..955296b 100644 --- a/doc/html/boost_functiontypes/reference/tag_types.html +++ b/doc/html/boost_functiontypes/reference/tag_types.html @@ -2,7 +2,7 @@ Tag Types - + diff --git a/doc/html/boost_functiontypes/use_cases.html b/doc/html/boost_functiontypes/use_cases.html index ab9e332..803b994 100644 --- a/doc/html/boost_functiontypes/use_cases.html +++ b/doc/html/boost_functiontypes/use_cases.html @@ -2,7 +2,7 @@ Use Cases - + diff --git a/doc/html/boostbook.css b/doc/html/boostbook.css deleted file mode 100644 index 858d43c..0000000 --- a/doc/html/boostbook.css +++ /dev/null @@ -1,528 +0,0 @@ -/*============================================================================= - Copyright (c) 2004 Joel de Guzman - http://spirit.sourceforge.net/ - - Use, modification and distribution is subject to the Boost Software - License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at - http://www.boost.org/LICENSE_1_0.txt) -=============================================================================*/ - -/*============================================================================= - Body defaults -=============================================================================*/ - - body - { - margin: 1em; - font-family: sans-serif; - } - -/*============================================================================= - Paragraphs -=============================================================================*/ - - p - { - text-align: left; - font-size: 10pt; - line-height: 1.15; - } - -/*============================================================================= - Program listings -=============================================================================*/ - - /* Code on paragraphs */ - p tt.computeroutput - { - font-size: 9pt; - } - - pre.synopsis - { - font-size: 90%; - margin: 1pc 4% 0pc 4%; - padding: 0.5pc 0.5pc 0.5pc 0.5pc; - } - - .programlisting, - .screen - { - font-size: 9pt; - display: block; - margin: 1pc 4% 0pc 4%; - padding: 0.5pc 0.5pc 0.5pc 0.5pc; - } - - /* Program listings in tables don't get borders */ - td .programlisting, - td .screen - { - margin: 0pc 0pc 0pc 0pc; - padding: 0pc 0pc 0pc 0pc; - } - -/*============================================================================= - Headings -=============================================================================*/ - - h1, h2, h3, h4, h5, h6 - { - text-align: left; - margin: 1em 0em 0.5em 0em; - font-weight: bold; - } - - h1 { font: 140% } - h2 { font: bold 140% } - h3 { font: bold 130% } - h4 { font: bold 120% } - h5 { font: italic 110% } - h6 { font: italic 100% } - - /* Top page titles */ - title, - h1.title, - h2.title - h3.title, - h4.title, - h5.title, - h6.title, - .refentrytitle - { - font-weight: bold; - margin-bottom: 1pc; - } - - h1.title { font-size: 140% } - h2.title { font-size: 140% } - h3.title { font-size: 130% } - h4.title { font-size: 120% } - h5.title { font-size: 110% } - h6.title { font-size: 100% } - - .section h1 - { - margin: 0em 0em 0.5em 0em; - font-size: 140%; - } - - .section h2 { font-size: 140% } - .section h3 { font-size: 130% } - .section h4 { font-size: 120% } - .section h5 { font-size: 110% } - .section h6 { font-size: 100% } - - /* Code on titles */ - h1 tt.computeroutput { font-size: 140% } - h2 tt.computeroutput { font-size: 140% } - h3 tt.computeroutput { font-size: 130% } - h4 tt.computeroutput { font-size: 120% } - h5 tt.computeroutput { font-size: 110% } - h6 tt.computeroutput { font-size: 100% } - -/*============================================================================= - Author -=============================================================================*/ - - h3.author - { - font-size: 100% - } - -/*============================================================================= - Lists -=============================================================================*/ - - li - { - font-size: 10pt; - line-height: 1.3; - } - - /* Unordered lists */ - ul - { - text-align: left; - } - - /* Ordered lists */ - ol - { - text-align: left; - } - -/*============================================================================= - Links -=============================================================================*/ - - a - { - text-decoration: none; /* no underline */ - } - - a:hover - { - text-decoration: underline; - } - -/*============================================================================= - Spirit style navigation -=============================================================================*/ - - .spirit-nav - { - text-align: right; - } - - .spirit-nav a - { - color: white; - padding-left: 0.5em; - } - - .spirit-nav img - { - border-width: 0px; - } - -/*============================================================================= - Table of contents -=============================================================================*/ - - .toc - { - margin: 1pc 4% 0pc 4%; - padding: 0.1pc 1pc 0.1pc 1pc; - font-size: 80%; - line-height: 1.15; - } - - .boost-toc - { - float: right; - padding: 0.5pc; - } - -/*============================================================================= - Tables -=============================================================================*/ - - .table-title, - div.table p.title - { - margin-left: 4%; - padding-right: 0.5em; - padding-left: 0.5em; - } - - .informaltable table, - .table table - { - width: 92%; - margin-left: 4%; - margin-right: 4%; - } - - div.informaltable table, - div.table table - { - padding: 4px; - } - - /* Table Cells */ - div.informaltable table tr td, - div.table table tr td - { - padding: 0.5em; - text-align: left; - font-size: 9pt; - } - - div.informaltable table tr th, - div.table table tr th - { - padding: 0.5em 0.5em 0.5em 0.5em; - border: 1pt solid white; - font-size: 80%; - } - -/*============================================================================= - Blurbs -=============================================================================*/ - - div.note, - div.tip, - div.important, - div.caution, - div.warning, - div.sidebar - { - font-size: 9pt; /* A little bit smaller than the main text */ - line-height: 1.2; - display: block; - margin: 1pc 4% 0pc 4%; - padding: 0.5pc 0.5pc 0.0pc 0.5pc; - } - - div.sidebar img - { - padding: 1pt; - } - -/*============================================================================= - Callouts -=============================================================================*/ - .line_callout_bug img - { - float: left; - position:relative; - left: 4px; - top: -12px; - clear: left; - margin-left:-22px; - } - - .callout_bug img - { - } - -/*============================================================================= - Variable Lists -=============================================================================*/ - - /* Make the terms in definition lists bold */ - div.variablelist dl dt, - span.term - { - font-weight: bold; - font-size: 10pt; - } - - div.variablelist table tbody tr td - { - text-align: left; - vertical-align: top; - padding: 0em 2em 0em 0em; - font-size: 10pt; - margin: 0em 0em 0.5em 0em; - line-height: 1; - } - - div.variablelist dl dt - { - margin-bottom: 0.2em; - } - - div.variablelist dl dd - { - margin: 0em 0em 0.5em 2em; - font-size: 10pt; - } - - div.variablelist table tbody tr td p, - div.variablelist dl dd p - { - margin: 0em 0em 0.5em 0em; - line-height: 1; - } - -/*============================================================================= - Misc -=============================================================================*/ - - /* Title of books and articles in bibliographies */ - span.title - { - font-style: italic; - } - - span.underline - { - text-decoration: underline; - } - - span.strikethrough - { - text-decoration: line-through; - } - - /* Copyright, Legal Notice */ - div div.legalnotice p - { - text-align: left - } - -/*============================================================================= - Colors -=============================================================================*/ - - @media screen - { - /* Links */ - a - { - color: #005a9c; - } - - a:visited - { - color: #9c5a9c; - } - - h1 a, h2 a, h3 a, h4 a, h5 a, h6 a, - h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover, - h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited - { - text-decoration: none; /* no underline */ - color: #000000; - } - - /* Syntax Highlighting */ - .keyword { color: #0000AA; } - .identifier { color: #000000; } - .special { color: #707070; } - .preprocessor { color: #402080; } - .char { color: teal; } - .comment { color: #800000; } - .string { color: teal; } - .number { color: teal; } - .white_bkd { background-color: #FFFFFF; } - .dk_grey_bkd { background-color: #999999; } - - /* Copyright, Legal Notice */ - .copyright - { - color: #666666; - font-size: small; - } - - div div.legalnotice p - { - color: #666666; - } - - /* Program listing */ - pre.synopsis - { - border: 1px solid #DCDCDC; - } - - .programlisting, - .screen - { - border: 1px solid #DCDCDC; - } - - td .programlisting, - td .screen - { - border: 0px solid #DCDCDC; - } - - /* Blurbs */ - div.note, - div.tip, - div.important, - div.caution, - div.warning, - div.sidebar - { - border: 1px solid #DCDCDC; - } - - /* Table of contents */ - .toc - { - border: 1px solid #DCDCDC; - } - - /* Tables */ - div.informaltable table tr td, - div.table table tr td - { - border: 1px solid #DCDCDC; - } - - div.informaltable table tr th, - div.table table tr th - { - background-color: #F0F0F0; - border: 1px solid #DCDCDC; - } - - /* Misc */ - span.highlight - { - color: #00A000; - } - } - - @media print - { - /* Links */ - a - { - color: black; - } - - a:visited - { - color: black; - } - - .spirit-nav - { - display: none; - } - - /* Program listing */ - pre.synopsis - { - border: 1px solid gray; - } - - .programlisting, - .screen - { - border: 1px solid gray; - } - - td .programlisting, - td .screen - { - border: 0px solid #DCDCDC; - } - - /* Table of contents */ - .toc - { - border: 1px solid gray; - } - - .informaltable table, - .table table - { - border: 1px solid gray; - border-collapse: collapse; - } - - /* Tables */ - div.informaltable table tr td, - div.table table tr td - { - border: 1px solid gray; - } - - div.informaltable table tr th, - div.table table tr th - { - border: 1px solid gray; - } - - /* Misc */ - span.highlight - { - font-weight: bold; - } - } diff --git a/doc/html/index.html b/doc/html/index.html index 358b001..2f32aa2 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -2,7 +2,7 @@ Chapter 1. Boost.FunctionTypes 2.5 - + @@ -27,7 +27,7 @@
-

+

Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

@@ -46,7 +46,7 @@
- +

Last revised: May 13, 2007 at 13:12:48 GMT

Last revised: November 05, 2007 at 18:24:58 +0100


From b60bbe281f65394be7dcd42a28b21fb7a1bc315d Mon Sep 17 00:00:00 2001 From: Tobias Schwinger Date: Wed, 5 Dec 2007 10:24:21 +0000 Subject: [PATCH 02/34] clarifies #error message [SVN r41739] --- test/custom_ccs/member_ccs.cpp | 2 +- test/custom_ccs/member_ccs_exact.cpp | 2 +- test/custom_ccs/nonmember_ccs.cpp | 2 +- test/custom_ccs/nonmember_ccs_exact.cpp | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/test/custom_ccs/member_ccs.cpp b/test/custom_ccs/member_ccs.cpp index 727b38b..11f9392 100644 --- a/test/custom_ccs/member_ccs.cpp +++ b/test/custom_ccs/member_ccs.cpp @@ -14,7 +14,7 @@ #include #ifndef BOOST_FT_CC_STDCALL -# error "test not supported with this compiler" +# error "test not supported with this compiler/platform" #endif namespace ft = boost::function_types; diff --git a/test/custom_ccs/member_ccs_exact.cpp b/test/custom_ccs/member_ccs_exact.cpp index 2decf14..413b133 100644 --- a/test/custom_ccs/member_ccs_exact.cpp +++ b/test/custom_ccs/member_ccs_exact.cpp @@ -14,7 +14,7 @@ #include #ifndef BOOST_FT_CC_STDCALL -# error "test not supported with this compiler" +# error "test not supported with this compiler/platform" #endif namespace ft = boost::function_types; diff --git a/test/custom_ccs/nonmember_ccs.cpp b/test/custom_ccs/nonmember_ccs.cpp index 98bf3d5..81681ff 100644 --- a/test/custom_ccs/nonmember_ccs.cpp +++ b/test/custom_ccs/nonmember_ccs.cpp @@ -16,7 +16,7 @@ #include #ifndef BOOST_FT_CC_STDCALL -# error "test not supported with this compiler" +# error "test not supported with this compiler/platform" #endif namespace ft = boost::function_types; diff --git a/test/custom_ccs/nonmember_ccs_exact.cpp b/test/custom_ccs/nonmember_ccs_exact.cpp index 31f73c0..d6db300 100644 --- a/test/custom_ccs/nonmember_ccs_exact.cpp +++ b/test/custom_ccs/nonmember_ccs_exact.cpp @@ -16,7 +16,7 @@ #include #ifndef BOOST_FT_CC_STDCALL -# error "test not supported with this compiler" +# error "test not supported with this compiler/platform" #endif namespace ft = boost::function_types; From ed24c45406e2d90474fcab76b8a5f24be38254c8 Mon Sep 17 00:00:00 2001 From: Tobias Schwinger Date: Wed, 5 Dec 2007 13:20:13 +0000 Subject: [PATCH 03/34] attempts to fix strange problems with Pathscale compilers [SVN r41742] --- example/interpreter.hpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/example/interpreter.hpp b/example/interpreter.hpp index 9e75bf7..65521b8 100644 --- a/example/interpreter.hpp +++ b/example/interpreter.hpp @@ -133,8 +133,9 @@ namespace example void apply(Function func, token_parser & parser, Args const & args) { typedef typename mpl::deref::type arg_type; + typedef typename mpl::next::type next_iter_type; - invoker::type, To>::apply + invoker::apply ( func, parser, fusion::push_back(args, parser.get()) ); } }; From d2091186868974442a37a2e7cbaaafc8be26a40b Mon Sep 17 00:00:00 2001 From: Tobias Schwinger Date: Tue, 15 Jan 2008 19:46:10 +0000 Subject: [PATCH 04/34] adds missing #include [SVN r42797] --- example/interface_example.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/example/interface_example.cpp b/example/interface_example.cpp index d4f66bb..6b7f8d9 100644 --- a/example/interface_example.cpp +++ b/example/interface_example.cpp @@ -8,6 +8,7 @@ // See interface.hpp in this directory for details. #include +#include #include "interface.hpp" From d989383a271a5964f975e55309972d2451c98bd2 Mon Sep 17 00:00:00 2001 From: Tobias Schwinger Date: Wed, 16 Jan 2008 19:16:37 +0000 Subject: [PATCH 05/34] works around MSVC7.1 problems (hopefully) [SVN r42821] --- example/fast_mem_fn_example.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/example/fast_mem_fn_example.cpp b/example/fast_mem_fn_example.cpp index efe66a1..381ee14 100644 --- a/example/fast_mem_fn_example.cpp +++ b/example/fast_mem_fn_example.cpp @@ -101,7 +101,11 @@ int main() setup_test(v); t.restart(); +#if !BOOST_WORKAROUND(BOOST_MSVC, < 1400) do_test(v, BOOST_EXAMPLE_FAST_MEM_FN(& test::id)); +#else // MSVC<8 does not like the implementation of the deduction macro: + do_test(v, ::example::fast_mem_fn< int (test::*)() const, & test::id >()); +#endif time1 = t.elapsed(); std::cout << "fast_mem_fn | " << time1 << std::endl; From 5ee20a43833ed4277a55ea7ad9cd0142c80a969a Mon Sep 17 00:00:00 2001 From: Tobias Schwinger Date: Wed, 16 Jan 2008 19:17:09 +0000 Subject: [PATCH 06/34] attempts to fix Borland regressions [SVN r42822] --- include/boost/function_types/components.hpp | 120 ++++++++++---------- 1 file changed, 63 insertions(+), 57 deletions(-) diff --git a/include/boost/function_types/components.hpp b/include/boost/function_types/components.hpp index b975307..6d503a9 100644 --- a/include/boost/function_types/components.hpp +++ b/include/boost/function_types/components.hpp @@ -120,13 +120,14 @@ namespace boost template < typename Components , typename IfTagged - , typename ThenTag + , typename ThenTag + , typename DefaultBase = components_non_func_base > struct retagged_if : mpl::if_ < detail::represents_impl , detail::changed_tag - , components_non_func_base + , DefaultBase >::type { }; @@ -213,14 +214,71 @@ namespace boost : components_impl { }; -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x565)) + + template + struct member_obj_ptr_result + { typedef T & type; }; + + template + struct member_obj_ptr_result + { typedef T const & type; }; + + template + struct member_obj_ptr_result + { typedef T volatile & type; }; + + template + struct member_obj_ptr_result + { typedef T const volatile & type; }; + + template + struct member_obj_ptr_result + { typedef T & type; }; + + template + struct member_obj_ptr_result + { typedef T & type; }; + + template + struct member_obj_ptr_result + { typedef T & type; }; + + template + struct member_obj_ptr_result + { typedef T & type; }; + + template + struct member_obj_ptr_components + : member_object_pointer_base + { + typedef function_types::components type; + typedef components_mpl_sequence_tag tag; + + typedef mpl::integral_c function_arity; + + typedef mpl::vector2< typename detail::member_obj_ptr_result::type, + typename detail::class_transform::type > types; + }; + +#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x565)) +# define BOOST_FT_variations BOOST_FT_pointer|BOOST_FT_member_pointer + + template + struct components_impl + : member_obj_ptr_components + { }; + +#else +# define BOOST_FT_variations BOOST_FT_pointer + // This workaround removes the member pointer from the type to allow // detection of member function pointers with BCC. template struct components_impl : detail::retagged_if < detail::components_impl::type *, L> - , pointer_tag, /* --> */ member_pointer_tag > + , pointer_tag, /* --> */ member_function_pointer_tag + , member_obj_ptr_components > { }; // BCC lets us test the cv-qualification of a function type by template @@ -355,59 +413,7 @@ namespace boost >::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 - struct member_obj_ptr_result - { typedef T & type; }; - - template - struct member_obj_ptr_result - { typedef T const & type; }; - - template - struct member_obj_ptr_result - { typedef T volatile & type; }; - - template - struct member_obj_ptr_result - { typedef T const volatile & type; }; - - template - struct member_obj_ptr_result - { typedef T & type; }; - - template - struct member_obj_ptr_result - { typedef T & type; }; - - template - struct member_obj_ptr_result - { typedef T & type; }; - - template - struct member_obj_ptr_result - { typedef T & type; }; - - - template - struct components_impl - : member_object_pointer_base - { - typedef function_types::components type; - typedef components_mpl_sequence_tag tag; - - typedef mpl::integral_c function_arity; - - typedef mpl::vector2< typename detail::member_obj_ptr_result::type, - typename detail::class_transform::type > types; - }; - -#endif +#endif // end of BORLAND WORKAROUND #define BOOST_FT_al_path boost/function_types/detail/components_impl #include From 508b6ff4d7c39cb57cdaf1b7064cfa17c6199e81 Mon Sep 17 00:00:00 2001 From: Tobias Schwinger Date: Fri, 18 Jan 2008 14:37:41 +0000 Subject: [PATCH 07/34] makes member object support work with BCC [SVN r42843] --- include/boost/function_types/components.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/boost/function_types/components.hpp b/include/boost/function_types/components.hpp index 6d503a9..a4432c5 100644 --- a/include/boost/function_types/components.hpp +++ b/include/boost/function_types/components.hpp @@ -407,7 +407,7 @@ namespace boost struct components_bcc : mpl::if_ < detail::represents_impl< detail::components_impl - , member_pointer_tag> + , member_function_pointer_tag> , detail::mfp_components,T,OrigT,L> , detail::components_impl >::type From 72f89e943422b39f3f1acb62c1ef965c8d42055b Mon Sep 17 00:00:00 2001 From: Tobias Schwinger Date: Fri, 18 Jan 2008 20:52:06 +0000 Subject: [PATCH 08/34] attempts to fix BCB 5.9 regression in synthesis/mem_func_ptr_cv_ptr_to_this test [SVN r42858] --- include/boost/function_types/detail/cv_traits.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/boost/function_types/detail/cv_traits.hpp b/include/boost/function_types/detail/cv_traits.hpp index b48452d..e52a48d 100644 --- a/include/boost/function_types/detail/cv_traits.hpp +++ b/include/boost/function_types/detail/cv_traits.hpp @@ -12,7 +12,7 @@ #include #include -#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) +#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) || BOOST_WORKAROUND(__BORLANDC__, <= 0x582) # include # include # include @@ -25,7 +25,7 @@ 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)) +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !BOOST_WORKAROUND(__BORLANDC__, <= 0x582) template struct cv_traits { typedef non_cv tag; typedef T type; }; From e171bda08f7ae58997106612ea8231c802967aa3 Mon Sep 17 00:00:00 2001 From: Tobias Schwinger Date: Fri, 18 Jan 2008 21:06:44 +0000 Subject: [PATCH 09/34] attempts to fix pathscale failure [SVN r42859] --- example/interpreter.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/example/interpreter.hpp b/example/interpreter.hpp index 65521b8..72cd78b 100644 --- a/example/interpreter.hpp +++ b/example/interpreter.hpp @@ -135,7 +135,7 @@ namespace example typedef typename mpl::deref::type arg_type; typedef typename mpl::next::type next_iter_type; - invoker::apply + interpreter::invoker::apply ( func, parser, fusion::push_back(args, parser.get()) ); } }; From 2fe398d9f875c5238e61945c3c029288908f0cb6 Mon Sep 17 00:00:00 2001 From: Tobias Schwinger Date: Thu, 24 Jan 2008 18:56:27 +0000 Subject: [PATCH 10/34] correctsbroken compiler support for MPL [SVN r42950] --- include/boost/function_types/is_member_object_pointer.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/boost/function_types/is_member_object_pointer.hpp b/include/boost/function_types/is_member_object_pointer.hpp index fbf4850..77527d9 100644 --- a/include/boost/function_types/is_member_object_pointer.hpp +++ b/include/boost/function_types/is_member_object_pointer.hpp @@ -24,10 +24,10 @@ namespace boost < function_types::components , detail::member_object_pointer_tag > { - BOOST_MPL_AUX_LAMBDA_SUPPORT(2,is_member_object_pointer,(T,Tag)) + BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_member_object_pointer,(T)) }; } - BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::is_member_object_pointer) + BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1,function_types::is_member_object_pointer) } #endif From 0a515cc963f9dc5636c68c03a1970656f7470423 Mon Sep 17 00:00:00 2001 From: Tobias Schwinger Date: Fri, 25 Jan 2008 00:26:16 +0000 Subject: [PATCH 11/34] simplifies preprocessing code [SVN r42957] --- .../detail/pp_cc_loop/master.hpp | 8 ++-- .../detail/pp_cc_loop/preprocessed.hpp | 18 ++++----- .../boost/function_types/detail/pp_loop.hpp | 4 +- .../detail/pp_variate_loop/master.hpp | 2 +- .../detail/pp_variate_loop/preprocessed.hpp | 40 +++++++++---------- .../boost/function_types/property_tags.hpp | 2 +- 6 files changed, 37 insertions(+), 37 deletions(-) diff --git a/include/boost/function_types/detail/pp_cc_loop/master.hpp b/include/boost/function_types/detail/pp_cc_loop/master.hpp index 5a6d6c4..60e958c 100644 --- a/include/boost/function_types/detail/pp_cc_loop/master.hpp +++ b/include/boost/function_types/detail/pp_cc_loop/master.hpp @@ -42,7 +42,7 @@ # define BOOST_FT_cc_name implicit_cc # define BOOST_FT_cc BOOST_PP_EMPTY # define BOOST_FT_cond callable_builtin -# include BOOST_PP_EXPAND ( ) +# include BOOST_FT_cc_file # undef BOOST_FT_cond # undef BOOST_FT_cc_name # undef BOOST_FT_cc @@ -54,7 +54,7 @@ BOOST_PP_EXPAND(#) define BOOST_FT_cc_name implicit_cc BOOST_PP_EXPAND(#) define BOOST_FT_cc BOOST_PP_EMPTY BOOST_PP_EXPAND(#) define BOOST_FT_cond callable_builtin #define _() -BOOST_PP_EXPAND(#) include BOOST_PP_EXPAND _()( ) +BOOST_PP_EXPAND(#) include BOOST_FT_cc_file #undef _ BOOST_PP_EXPAND(#) undef BOOST_FT_cond BOOST_PP_EXPAND(#) undef BOOST_FT_cc_name @@ -85,7 +85,7 @@ BOOST_PP_EXPAND(#) endif # if BOOST_FT_cond # define BOOST_FT_config_valid 1 -# include BOOST_PP_EXPAND() +# include BOOST_FT_cc_file # endif # undef BOOST_FT_cond @@ -121,7 +121,7 @@ BOOST_PP_EXPAND(#) define BOOST_FT_cond BOOST_FT_cc_cond_v BOOST_PP_EXPAND(#) if BOOST_FT_cond BOOST_PP_EXPAND(#) define BOOST_FT_config_valid 1 #define _() -BOOST_PP_EXPAND(#) include BOOST_PP_EXPAND _()() +BOOST_PP_EXPAND(#) include BOOST_FT_cc_file #undef _ BOOST_PP_EXPAND(#) endif diff --git a/include/boost/function_types/detail/pp_cc_loop/preprocessed.hpp b/include/boost/function_types/detail/pp_cc_loop/preprocessed.hpp index 87c6031..da4079c 100644 --- a/include/boost/function_types/detail/pp_cc_loop/preprocessed.hpp +++ b/include/boost/function_types/detail/pp_cc_loop/preprocessed.hpp @@ -15,7 +15,7 @@ # define BOOST_FT_cond BOOST_FT_CC_IMPLICIT # if BOOST_FT_cond # define BOOST_FT_config_valid 1 -# include BOOST_PP_EXPAND ( ) +# include BOOST_FT_cc_file # endif # undef BOOST_FT_cond # undef BOOST_FT_cc_name @@ -27,7 +27,7 @@ # define BOOST_FT_cond BOOST_FT_CC_CDECL # if BOOST_FT_cond # define BOOST_FT_config_valid 1 -# include BOOST_PP_EXPAND ( ) +# include BOOST_FT_cc_file # endif # undef BOOST_FT_cond # undef BOOST_FT_cc_name @@ -39,7 +39,7 @@ # define BOOST_FT_cond BOOST_FT_CC_STDCALL # if BOOST_FT_cond # define BOOST_FT_config_valid 1 -# include BOOST_PP_EXPAND ( ) +# include BOOST_FT_cc_file # endif # undef BOOST_FT_cond # undef BOOST_FT_cc_name @@ -51,7 +51,7 @@ # define BOOST_FT_cond BOOST_FT_CC_PASCAL # if BOOST_FT_cond # define BOOST_FT_config_valid 1 -# include BOOST_PP_EXPAND ( ) +# include BOOST_FT_cc_file # endif # undef BOOST_FT_cond # undef BOOST_FT_cc_name @@ -63,7 +63,7 @@ # define BOOST_FT_cond BOOST_FT_CC_FASTCALL # if BOOST_FT_cond # define BOOST_FT_config_valid 1 -# include BOOST_PP_EXPAND ( ) +# include BOOST_FT_cc_file # endif # undef BOOST_FT_cond # undef BOOST_FT_cc_name @@ -75,7 +75,7 @@ # define BOOST_FT_cond BOOST_FT_CC_CLRCALL # if BOOST_FT_cond # define BOOST_FT_config_valid 1 -# include BOOST_PP_EXPAND ( ) +# include BOOST_FT_cc_file # endif # undef BOOST_FT_cond # undef BOOST_FT_cc_name @@ -87,7 +87,7 @@ # define BOOST_FT_cond BOOST_FT_CC_THISCALL # if BOOST_FT_cond # define BOOST_FT_config_valid 1 -# include BOOST_PP_EXPAND ( ) +# include BOOST_FT_cc_file # endif # undef BOOST_FT_cond # undef BOOST_FT_cc_name @@ -99,7 +99,7 @@ # define BOOST_FT_cond BOOST_FT_CC_IMPLICIT_THISCALL # if BOOST_FT_cond # define BOOST_FT_config_valid 1 -# include BOOST_PP_EXPAND ( ) +# include BOOST_FT_cc_file # endif # undef BOOST_FT_cond # undef BOOST_FT_cc_name @@ -110,7 +110,7 @@ # define BOOST_FT_cc_name implicit_cc # define BOOST_FT_cc BOOST_PP_EMPTY # define BOOST_FT_cond 0x00000001 -# include BOOST_PP_EXPAND ( ) +# include BOOST_FT_cc_file # undef BOOST_FT_cond # undef BOOST_FT_cc_name # undef BOOST_FT_cc diff --git a/include/boost/function_types/detail/pp_loop.hpp b/include/boost/function_types/detail/pp_loop.hpp index 7521cf2..7d8c347 100644 --- a/include/boost/function_types/detail/pp_loop.hpp +++ b/include/boost/function_types/detail/pp_loop.hpp @@ -28,9 +28,9 @@ #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( \ diff --git a/include/boost/function_types/detail/pp_variate_loop/master.hpp b/include/boost/function_types/detail/pp_variate_loop/master.hpp index cf27477..5026342 100644 --- a/include/boost/function_types/detail/pp_variate_loop/master.hpp +++ b/include/boost/function_types/detail/pp_variate_loop/master.hpp @@ -140,7 +140,7 @@ 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_PP_EXPAND(#) include BOOST_FT_variate_file BOOST_PP_EXPAND(#) undef BOOST_FT_cv BOOST_PP_EXPAND(#) undef BOOST_FT_ell diff --git a/include/boost/function_types/detail/pp_variate_loop/preprocessed.hpp b/include/boost/function_types/detail/pp_variate_loop/preprocessed.hpp index d87d519..7e7c4f9 100644 --- a/include/boost/function_types/detail/pp_variate_loop/preprocessed.hpp +++ b/include/boost/function_types/detail/pp_variate_loop/preprocessed.hpp @@ -15,7 +15,7 @@ # define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM # define BOOST_FT_cv # define BOOST_FT_flags 519 -# include BOOST_PP_EXPAND ( ) +# include BOOST_FT_variate_file # undef BOOST_FT_cv # undef BOOST_FT_ell # undef BOOST_FT_nullary_param @@ -28,7 +28,7 @@ # define BOOST_FT_nullary_param # define BOOST_FT_cv # define BOOST_FT_flags 263 -# include BOOST_PP_EXPAND ( ) +# include BOOST_FT_variate_file # undef BOOST_FT_cv # undef BOOST_FT_ell # undef BOOST_FT_nullary_param @@ -42,7 +42,7 @@ # define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM # define BOOST_FT_cv const # define BOOST_FT_flags 1543 -# include BOOST_PP_EXPAND ( ) +# include BOOST_FT_variate_file # undef BOOST_FT_cv # undef BOOST_FT_ell # undef BOOST_FT_nullary_param @@ -55,7 +55,7 @@ # define BOOST_FT_nullary_param # define BOOST_FT_cv const # define BOOST_FT_flags 1287 -# include BOOST_PP_EXPAND ( ) +# include BOOST_FT_variate_file # undef BOOST_FT_cv # undef BOOST_FT_ell # undef BOOST_FT_nullary_param @@ -68,7 +68,7 @@ # define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM # define BOOST_FT_cv volatile # define BOOST_FT_flags 2567 -# include BOOST_PP_EXPAND ( ) +# include BOOST_FT_variate_file # undef BOOST_FT_cv # undef BOOST_FT_ell # undef BOOST_FT_nullary_param @@ -81,7 +81,7 @@ # define BOOST_FT_nullary_param # define BOOST_FT_cv volatile # define BOOST_FT_flags 2311 -# include BOOST_PP_EXPAND ( ) +# include BOOST_FT_variate_file # undef BOOST_FT_cv # undef BOOST_FT_ell # undef BOOST_FT_nullary_param @@ -94,7 +94,7 @@ # define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM # define BOOST_FT_cv const volatile # define BOOST_FT_flags 3591 -# include BOOST_PP_EXPAND ( ) +# include BOOST_FT_variate_file # undef BOOST_FT_cv # undef BOOST_FT_ell # undef BOOST_FT_nullary_param @@ -107,7 +107,7 @@ # define BOOST_FT_nullary_param # define BOOST_FT_cv const volatile # define BOOST_FT_flags 3335 -# include BOOST_PP_EXPAND ( ) +# include BOOST_FT_variate_file # undef BOOST_FT_cv # undef BOOST_FT_ell # undef BOOST_FT_nullary_param @@ -123,7 +123,7 @@ # define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM # define BOOST_FT_cv # define BOOST_FT_flags 523 -# include BOOST_PP_EXPAND ( ) +# include BOOST_FT_variate_file # undef BOOST_FT_cv # undef BOOST_FT_ell # undef BOOST_FT_nullary_param @@ -136,7 +136,7 @@ # define BOOST_FT_nullary_param # define BOOST_FT_cv # define BOOST_FT_flags 267 -# include BOOST_PP_EXPAND ( ) +# include BOOST_FT_variate_file # undef BOOST_FT_cv # undef BOOST_FT_ell # undef BOOST_FT_nullary_param @@ -151,7 +151,7 @@ # define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM # define BOOST_FT_cv # define BOOST_FT_flags 531 -# include BOOST_PP_EXPAND ( ) +# include BOOST_FT_variate_file # undef BOOST_FT_cv # undef BOOST_FT_ell # undef BOOST_FT_nullary_param @@ -164,7 +164,7 @@ # define BOOST_FT_nullary_param # define BOOST_FT_cv # define BOOST_FT_flags 275 -# include BOOST_PP_EXPAND ( ) +# include BOOST_FT_variate_file # undef BOOST_FT_cv # undef BOOST_FT_ell # undef BOOST_FT_nullary_param @@ -181,7 +181,7 @@ # define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM # define BOOST_FT_cv # define BOOST_FT_flags 609 -# include BOOST_PP_EXPAND ( ) +# include BOOST_FT_variate_file # undef BOOST_FT_cv # undef BOOST_FT_ell # undef BOOST_FT_nullary_param @@ -194,7 +194,7 @@ # define BOOST_FT_nullary_param # define BOOST_FT_cv # define BOOST_FT_flags 353 -# include BOOST_PP_EXPAND ( ) +# include BOOST_FT_variate_file # undef BOOST_FT_cv # undef BOOST_FT_ell # undef BOOST_FT_nullary_param @@ -207,7 +207,7 @@ # define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM # define BOOST_FT_cv const # define BOOST_FT_flags 1633 -# include BOOST_PP_EXPAND ( ) +# include BOOST_FT_variate_file # undef BOOST_FT_cv # undef BOOST_FT_ell # undef BOOST_FT_nullary_param @@ -220,7 +220,7 @@ # define BOOST_FT_nullary_param # define BOOST_FT_cv const # define BOOST_FT_flags 1377 -# include BOOST_PP_EXPAND ( ) +# include BOOST_FT_variate_file # undef BOOST_FT_cv # undef BOOST_FT_ell # undef BOOST_FT_nullary_param @@ -233,7 +233,7 @@ # define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM # define BOOST_FT_cv volatile # define BOOST_FT_flags 2657 -# include BOOST_PP_EXPAND ( ) +# include BOOST_FT_variate_file # undef BOOST_FT_cv # undef BOOST_FT_ell # undef BOOST_FT_nullary_param @@ -246,7 +246,7 @@ # define BOOST_FT_nullary_param # define BOOST_FT_cv volatile # define BOOST_FT_flags 2401 -# include BOOST_PP_EXPAND ( ) +# include BOOST_FT_variate_file # undef BOOST_FT_cv # undef BOOST_FT_ell # undef BOOST_FT_nullary_param @@ -259,7 +259,7 @@ # define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM # define BOOST_FT_cv const volatile # define BOOST_FT_flags 3681 -# include BOOST_PP_EXPAND ( ) +# include BOOST_FT_variate_file # undef BOOST_FT_cv # undef BOOST_FT_ell # undef BOOST_FT_nullary_param @@ -272,7 +272,7 @@ # define BOOST_FT_nullary_param # define BOOST_FT_cv const volatile # define BOOST_FT_flags 3425 -# include BOOST_PP_EXPAND ( ) +# include BOOST_FT_variate_file # undef BOOST_FT_cv # undef BOOST_FT_ell # undef BOOST_FT_nullary_param diff --git a/include/boost/function_types/property_tags.hpp b/include/boost/function_types/property_tags.hpp index b241e1a..bbc64d5 100644 --- a/include/boost/function_types/property_tags.hpp +++ b/include/boost/function_types/property_tags.hpp @@ -141,7 +141,7 @@ template struct extract #include namespace boost { namespace function_types { -#define BOOST_FT_cc_file boost/function_types/detail/pp_tags/cc_tag.hpp +#define BOOST_FT_cc_file #include } } // namespace boost::function_types From 096ac6aac465e7a32decfcf8f6003baa030c5331 Mon Sep 17 00:00:00 2001 From: Tobias Schwinger Date: Fri, 25 Jan 2008 00:28:15 +0000 Subject: [PATCH 12/34] touched [SVN r42958] --- build/timestamps/cc_names | 3 +-- build/timestamps/encoding | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/build/timestamps/cc_names b/build/timestamps/cc_names index e33ac14..909846c 100644 --- a/build/timestamps/cc_names +++ b/build/timestamps/cc_names @@ -1,2 +1 @@ -timestamp file - +timestamp file diff --git a/build/timestamps/encoding b/build/timestamps/encoding index f91091c..909846c 100644 --- a/build/timestamps/encoding +++ b/build/timestamps/encoding @@ -1 +1 @@ -timestamp file +timestamp file From 9d9c35e7971c693d7e144babdd7c3891c0bc9a1d Mon Sep 17 00:00:00 2001 From: Tobias Schwinger Date: Sat, 26 Jan 2008 21:50:14 +0000 Subject: [PATCH 13/34] attempts to allow some preprocessing with VACPP (IBM) [SVN r42987] --- .../boost/function_types/detail/pp_arity_loop.hpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/include/boost/function_types/detail/pp_arity_loop.hpp b/include/boost/function_types/detail/pp_arity_loop.hpp index 91dfb7c..b6dbff5 100644 --- a/include/boost/function_types/detail/pp_arity_loop.hpp +++ b/include/boost/function_types/detail/pp_arity_loop.hpp @@ -81,14 +81,16 @@ BOOST_PP_EXPAND(#) include BOOST_FT_AL_PREPROCESSED # include # endif +# define BOOST_FT_AL_INCLUDE_FILE + # define BOOST_FT_ARITY_LOOP_PREFIX 1 -# include BOOST_PP_EXPAND() +# include BOOST_FT_AL_INCLUDE_FILE # undef BOOST_FT_ARITY_LOOP_PREFIX # if !BOOST_PP_IS_ITERATING -# define BOOST_PP_FILENAME_1 +# define BOOST_PP_FILENAME_1 BOOST_FT_AL_INCLUDE_FILE # elif BOOST_PP_ITERATION_DEPTH() == 1 -# define BOOST_PP_FILENAME_2 +# define BOOST_PP_FILENAME_2 BOOST_FT_AL_INCLUDE_FILE # else # error "loops nested too deeply" # endif @@ -133,8 +135,10 @@ BOOST_PP_EXPAND(#) include BOOST_FT_AL_PREPROCESSED # undef BOOST_FT_type # define BOOST_FT_ARITY_LOOP_SUFFIX 1 -# include BOOST_PP_EXPAND() +# include BOOST_FT_AL_INCLUDE_FILE # undef BOOST_FT_ARITY_LOOP_SUFFIX + +# undef BOOST_FT_AL_INCLUDE_FILE # endif # undef BOOST_FT_FROM_ARITY From adcac6d5d086515a5ba5fb418dce0ba47112101b Mon Sep 17 00:00:00 2001 From: Tobias Schwinger Date: Wed, 6 Feb 2008 13:00:08 +0000 Subject: [PATCH 14/34] attempts to make synthesis metafunctions work with sun compiler [SVN r43125] --- include/boost/function_types/detail/cv_traits.hpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/include/boost/function_types/detail/cv_traits.hpp b/include/boost/function_types/detail/cv_traits.hpp index e52a48d..e5b2706 100644 --- a/include/boost/function_types/detail/cv_traits.hpp +++ b/include/boost/function_types/detail/cv_traits.hpp @@ -12,7 +12,9 @@ #include #include -#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) || BOOST_WORKAROUND(__BORLANDC__, <= 0x582) +#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ + || BOOST_WORKAROUND(__BORLANDC__, <= 0x582) \ + || BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x590)) # include # include # include @@ -25,7 +27,9 @@ namespace boost { namespace function_types { namespace detail { namespace ft = boost::function_types; -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !BOOST_WORKAROUND(__BORLANDC__, <= 0x582) +#if ! (defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ + || BOOST_WORKAROUND(__BORLANDC__, <= 0x582) \ + || BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x590))) template struct cv_traits { typedef non_cv tag; typedef T type; }; From f5084b1410bddf074b4d91125b47fc7e89db872e Mon Sep 17 00:00:00 2001 From: Tobias Schwinger Date: Mon, 25 Feb 2008 11:47:59 +0000 Subject: [PATCH 15/34] removes unnecessary comment [SVN r43412] --- build/Jamfile | 2 +- build/preprocess_arity_loops.cpp | 2 +- build/preprocess_cc_names.cpp | 2 +- build/preprocess_encoding.cpp | 2 +- build/timestamps/cc_names | 2 +- build/timestamps/encoding | 2 +- doc/Jamfile | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/build/Jamfile b/build/Jamfile index ce5fb17..f56aa87 100644 --- a/build/Jamfile +++ b/build/Jamfile @@ -2,7 +2,7 @@ # (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). +# Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt). # Generates preprocessed files with wave. diff --git a/build/preprocess_arity_loops.cpp b/build/preprocess_arity_loops.cpp index a045e9f..d39b65c 100644 --- a/build/preprocess_arity_loops.cpp +++ b/build/preprocess_arity_loops.cpp @@ -2,7 +2,7 @@ // (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). +// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt). //------------------------------------------------------------------------------ diff --git a/build/preprocess_cc_names.cpp b/build/preprocess_cc_names.cpp index 39d77c5..803667c 100644 --- a/build/preprocess_cc_names.cpp +++ b/build/preprocess_cc_names.cpp @@ -2,7 +2,7 @@ // (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). +// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt). //------------------------------------------------------------------------------ diff --git a/build/preprocess_encoding.cpp b/build/preprocess_encoding.cpp index e2e4a5e..886bec3 100644 --- a/build/preprocess_encoding.cpp +++ b/build/preprocess_encoding.cpp @@ -2,7 +2,7 @@ // (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). +// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt). //------------------------------------------------------------------------------ diff --git a/build/timestamps/cc_names b/build/timestamps/cc_names index 909846c..f91091c 100644 --- a/build/timestamps/cc_names +++ b/build/timestamps/cc_names @@ -1 +1 @@ -timestamp file +timestamp file diff --git a/build/timestamps/encoding b/build/timestamps/encoding index 909846c..f91091c 100644 --- a/build/timestamps/encoding +++ b/build/timestamps/encoding @@ -1 +1 @@ -timestamp file +timestamp file diff --git a/doc/Jamfile b/doc/Jamfile index b4d7c2a..fc28d86 100644 --- a/doc/Jamfile +++ b/doc/Jamfile @@ -2,7 +2,7 @@ # (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). +# Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt). using quickbook ; From 8bc1c768ade18fcae2c0785eb7ac49f58eb7bef0 Mon Sep 17 00:00:00 2001 From: Tobias Schwinger Date: Fri, 14 Mar 2008 17:59:22 +0000 Subject: [PATCH 16/34] attempts to finally make Sun work [SVN r43605] --- include/boost/function_types/detail/cv_traits.hpp | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/include/boost/function_types/detail/cv_traits.hpp b/include/boost/function_types/detail/cv_traits.hpp index e5b2706..242f45b 100644 --- a/include/boost/function_types/detail/cv_traits.hpp +++ b/include/boost/function_types/detail/cv_traits.hpp @@ -13,8 +13,7 @@ #include #if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ - || BOOST_WORKAROUND(__BORLANDC__, <= 0x582) \ - || BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x590)) + || BOOST_WORKAROUND(__BORLANDC__, <= 0x582) # include # include # include @@ -24,12 +23,8 @@ namespace boost { namespace function_types { namespace detail { -namespace ft = boost::function_types; - - #if ! (defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ - || BOOST_WORKAROUND(__BORLANDC__, <= 0x582) \ - || BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x590))) + || BOOST_WORKAROUND(__BORLANDC__, <= 0x582)) template struct cv_traits { typedef non_cv tag; typedef T type; }; @@ -113,12 +108,13 @@ struct cv_code { static T _t; BOOST_STATIC_CONSTANT(std::size_t, value = - sizeof(ft::detail::switch_cv(ft::detail::ref_to_ptr(_t) ) )); + sizeof(::boost::function_types::detail::switch_cv( + ::boost::function_types::detail::ref_to_ptr(_t) ) )); }; template struct cv_traits { - typedef typename ft::detail::cv_tag_impl< + typedef typename boost::function_types::detail::cv_tag_impl< ::boost::function_types::detail::cv_code::value >::type tag; From 04a28f6d465a0f7d99728a44aff227f2cf567504 Mon Sep 17 00:00:00 2001 From: Tobias Schwinger Date: Fri, 14 Mar 2008 18:29:26 +0000 Subject: [PATCH 17/34] resolves #1100 and #1602 [SVN r43606] --- build/Jamfile | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/build/Jamfile b/build/Jamfile index f56aa87..bace553 100644 --- a/build/Jamfile +++ b/build/Jamfile @@ -13,18 +13,24 @@ rule wave actions wave { - $(BOOST_ROOT)/dist/bin/wave -S$(BOOST_ROOT) $(>) -o $(<) + ../../../dist/bin/wave -S../../.. $(>) -o $(<) } -make $(BOOST_ROOT)/libs/function_types/build/timestamps/arity_loops +make ../../../libs/function_types/build/timestamps/arity_loops : preprocess_arity_loops.cpp : wave ; -make $(BOOST_ROOT)/libs/function_types/build/timestamps/encoding +explicit ../../../libs/function_types/build/timestamps/arity_loops ; + +make ../../../libs/function_types/build/timestamps/encoding : preprocess_encoding.cpp : wave ; -make $(BOOST_ROOT)/libs/function_types/build/timestamps/cc_names +explicit ../../../libs/function_types/build/timestamps/encoding ; + +make ../../../libs/function_types/build/timestamps/cc_names : preprocess_cc_names.cpp : wave ; +explicit ../../../libs/function_types/build/timestamps/cc_names ; + From e4da19535d6eadaad7ddae151b240d4d71654295 Mon Sep 17 00:00:00 2001 From: Tobias Schwinger Date: Fri, 14 Mar 2008 18:36:46 +0000 Subject: [PATCH 18/34] adds acknowledgement for Noel helping to support Sun compilers [SVN r43608] --- doc/function_types.qbk | 1 + doc/html/boost_functiontypes/acknowledgements.html | 3 +++ 2 files changed, 4 insertions(+) diff --git a/doc/function_types.qbk b/doc/function_types.qbk index 0f989ae..2d97d32 100644 --- a/doc/function_types.qbk +++ b/doc/function_types.qbk @@ -1099,6 +1099,7 @@ library in one or the other way: * Jonathan Turkanis * Pavel Vozenilek * Steven Watanabe +* K. Noel Belcourt [endsect] diff --git a/doc/html/boost_functiontypes/acknowledgements.html b/doc/html/boost_functiontypes/acknowledgements.html index 4d335cd..414b34e 100644 --- a/doc/html/boost_functiontypes/acknowledgements.html +++ b/doc/html/boost_functiontypes/acknowledgements.html @@ -71,6 +71,9 @@
  • Steven Watanabe
  • +
  • + K. Noel Belcourt +
  • From f9a205678692de5cacec7e1edb7d4ef915315508 Mon Sep 17 00:00:00 2001 From: Daniel James Date: Wed, 9 Apr 2008 17:26:31 +0000 Subject: [PATCH 19/34] Fix a typo. [SVN r44130] --- doc/function_types.qbk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/function_types.qbk b/doc/function_types.qbk index 2d97d32..598a7b5 100644 --- a/doc/function_types.qbk +++ b/doc/function_types.qbk @@ -897,7 +897,7 @@ definition of [^BOOST_FT_CC_NAMES]: [section:BOOST_FT_CC BOOST_FT\_CC\_*] -Enables a specific calling convention. * dentoes the macro suffix, as +Enables a specific calling convention. * denotes the macro suffix, as defined by [link boost_functiontypes.reference.macros.BOOST_FT_CC_NAMES [^BOOST_FT_CC_NAMES]] or From 0071f7439336a03006fb8a14dddd3a00c67ef713 Mon Sep 17 00:00:00 2001 From: Daniel James Date: Wed, 9 Apr 2008 17:27:08 +0000 Subject: [PATCH 20/34] Rebuild the function types documentation. [SVN r44131] --- .../boost_functiontypes/about_tag_types.html | 23 +++-- .../boost_functiontypes/acknowledgements.html | 21 ++-- .../boost_functiontypes/introduction.html | 36 +++---- doc/html/boost_functiontypes/rationale.html | 91 ++++++++--------- doc/html/boost_functiontypes/reference.html | 24 +++-- .../reference/classification.html | 99 +++++++++---------- .../reference/decomposition.html | 58 +++++------ .../boost_functiontypes/reference/macros.html | 93 ++++++++--------- .../reference/synthesis.html | 66 ++++++------- .../reference/tag_types.html | 98 +++++++++--------- doc/html/boost_functiontypes/use_cases.html | 26 ++--- doc/html/index.html | 16 +-- 12 files changed, 336 insertions(+), 315 deletions(-) diff --git a/doc/html/boost_functiontypes/about_tag_types.html b/doc/html/boost_functiontypes/about_tag_types.html index d16c916..7d07a85 100644 --- a/doc/html/boost_functiontypes/about_tag_types.html +++ b/doc/html/boost_functiontypes/about_tag_types.html @@ -1,21 +1,21 @@ - About Tag Types +About Tag Types - + - - + +
    - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,7 +24,8 @@

    Boost.FunctionTypes uses tag types to encode properties that are not types per se, such as calling convention or whether a function is variadic or cv- @@ -84,7 +85,11 @@ - +
    Copyright © 2004 -2007 Tobias Schwinger


    diff --git a/doc/html/boost_functiontypes/acknowledgements.html b/doc/html/boost_functiontypes/acknowledgements.html index 414b34e..b0498b7 100644 --- a/doc/html/boost_functiontypes/acknowledgements.html +++ b/doc/html/boost_functiontypes/acknowledgements.html @@ -1,20 +1,20 @@ - Acknowledgements +Acknowledgements - + - + - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -23,7 +23,8 @@

    Thanks go to the following people for supporting the development of this library in one or the other way: @@ -78,7 +79,11 @@ - +
    Copyright © 2004 -2007 Tobias Schwinger


    diff --git a/doc/html/boost_functiontypes/introduction.html b/doc/html/boost_functiontypes/introduction.html index 8287622..cdaf6b1 100644 --- a/doc/html/boost_functiontypes/introduction.html +++ b/doc/html/boost_functiontypes/introduction.html @@ -1,21 +1,21 @@ - Introduction +Introduction - + - + - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,7 +24,8 @@

    Boost.FunctionTypes provides functionality to classify, decompose and synthesize function, function pointer, function reference and pointer to member types. @@ -56,35 +57,34 @@ constant called value.

    -is_function_pointer< bool(*)(int) >::value // == true 
    +is_function_pointer< bool(*)(int) >::value // == true 
     
    -function_arity< bool(*)(int) >::value // == 1
    +function_arity< bool(*)(int) >::value // == 1
     

    Templates that encapsulate properties that are single types contain a type member called type.

    -function_type< mpl::vector<bool,int> >::type // is bool(int)
    +function_type< mpl::vector<bool,int> >::type // is bool(int)
     
    -result_type< bool(&)(int) >::type // is bool
    +result_type< bool(&)(int) >::type // is bool
     

    Templates that encapsulate properties that are type lists model an MPL-compatible type sequence.

    -parameter_types< bool(int) > // models an MPL sequence
    +parameter_types< bool(int) > // models an MPL sequence
     
    - +
    Copyright © 2004 -2007 Tobias Schwinger

    diff --git a/doc/html/boost_functiontypes/rationale.html b/doc/html/boost_functiontypes/rationale.html index 475a795..5ba69d0 100644 --- a/doc/html/boost_functiontypes/rationale.html +++ b/doc/html/boost_functiontypes/rationale.html @@ -1,21 +1,21 @@ - Rationale +Rationale - + - - + + - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,12 +24,13 @@
    +

    + + Error handling rationale -

    +

    The library does not define the required members of class templates in case of an error. This technique causes the compiler to stop displaying diagnostics @@ -40,10 +41,10 @@ The library's components have limited error conditions, so problematic input can be spotted easily.

    -

    - - Why MPL Sequences? -

    +

    + + Why MPL Sequences? +

    MPL provides algorithms on Sequences, so transformations (such as turning by-value parameter types into const references for optimized forwarding or computing @@ -53,20 +54,20 @@ other Boost libraries (most importantly Fusion), so another reason is interoperability.

    -

    - - Pointer +

    + + Pointer to member object types -

    +

    Despite their syntax, pointer to member object types can be seen as dereferencing functionals.

    -

    - - The +

    + + The ClassTransform template parameter -

    +

    This-pointer, this-reference or just the object (or maybe even a smart pointer to the object) plus adjustments of @@ -79,10 +80,10 @@ client to adjust the class type before the sequence is formed and then treat all parameters uniformly.

    -

    - - Why tag types? -

    +

    + + Why tag types? +

    Let's consider the alternatives.

    @@ -98,12 +99,12 @@ parameters do not work within MPL lambda expressions and can cause problems with older compilers.

    -

    - - Is +

    + + Is it safe to have the synthesis templates take a callable builtin type or an MPL sequence as the first template argument? -

    +

    Yes, but it isn't immediately obvious as the set of possible MPL sequences isn't inherently disjoint from the set of callable builtin types. @@ -113,25 +114,23 @@ idea, because builtin types are accessible before the headers that make the type a sequence have been included, which can easily violate the ODR.

    -

    - - Why +

    + + Why does the hidden this parameter count for the function arity of member functions? -

    +

    It was found preferable that the following condition holds:

    -mpl::size< parameter_types<T> >::value == function_arity<T>::value
    +mpl::size< parameter_types<T> >::value == function_arity<T>::value
     
    -

    - - Why +

    + + Why ignore top-level cv-qualifiers on pointers? -

    +

    A cv-qualified pointer is still a pointer. It usually doesn't matter and even if it does, it's a job for Boost.TypeTraits. @@ -139,7 +138,11 @@ - +
    Copyright © 2004 -2007 Tobias Schwinger


    diff --git a/doc/html/boost_functiontypes/reference.html b/doc/html/boost_functiontypes/reference.html index 91fe6f3..eacf2d4 100644 --- a/doc/html/boost_functiontypes/reference.html +++ b/doc/html/boost_functiontypes/reference.html @@ -1,22 +1,21 @@ - Reference +Reference - + - - + + - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -25,7 +24,8 @@
    - +
    Copyright © 2004 -2007 Tobias Schwinger

    diff --git a/doc/html/boost_functiontypes/reference/classification.html b/doc/html/boost_functiontypes/reference/classification.html index 699dae9..2f49b79 100644 --- a/doc/html/boost_functiontypes/reference/classification.html +++ b/doc/html/boost_functiontypes/reference/classification.html @@ -1,23 +1,21 @@ - Class - templates for type classification +Class templates for type classification - + - - - + + + - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -26,9 +24,9 @@
    is_function
    @@ -49,12 +47,11 @@
    -template<typename T, typename Tag = null_tag>
    +template<typename T, typename Tag = null_tag>
     struct is_function;
     

    @@ -93,12 +90,11 @@

    -template<typename T, typename Tag = null_tag>
    +template<typename T, typename Tag = null_tag>
     struct is_function_pointer;
     

    @@ -137,12 +133,11 @@

    -template<typename T, typename Tag = null_tag>
    +template<typename T, typename Tag = null_tag>
     struct is_function_reference;
     

    @@ -181,12 +176,11 @@

    -template<typename T, typename Tag = null_tag>
    +template<typename T, typename Tag = null_tag>
     struct is_member_pointer;
     

    @@ -225,9 +219,9 @@

     template<typename T>
     struct is_member_object_pointer;
    @@ -263,12 +257,11 @@
     
     
     
    -template<typename T, typename Tag = null_tag>
    +template<typename T, typename Tag = null_tag>
     struct is_member_function_pointer;
     

    @@ -307,12 +300,11 @@

    -template<typename T, typename Tag = null_tag>
    +template<typename T, typename Tag = null_tag>
     struct is_callable_builtin;
     

    @@ -351,12 +343,11 @@

    -template<typename T, typename Tag = null_tag>
    +template<typename T, typename Tag = null_tag>
     struct is_nonmember_callable_builtin;
     

    @@ -397,7 +388,11 @@ - +
    Copyright © 2004 -2007 Tobias Schwinger


    diff --git a/doc/html/boost_functiontypes/reference/decomposition.html b/doc/html/boost_functiontypes/reference/decomposition.html index bb1b431..b4447e4 100644 --- a/doc/html/boost_functiontypes/reference/decomposition.html +++ b/doc/html/boost_functiontypes/reference/decomposition.html @@ -1,24 +1,21 @@ - Class templates - for type decomposition +Class templates for type decomposition - + - - - + + + - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -27,9 +24,9 @@
    result_type
    @@ -42,9 +39,9 @@
     template<typename F>
     struct result_type;
    @@ -78,9 +75,9 @@
     
     
     
     template<typename F, class ClassTransform = add_reference<_> >
     struct parameter_types;
    @@ -124,9 +121,9 @@
     
     
     
     template<typename F>
     struct function_arity;
    @@ -169,9 +166,9 @@
     
     
     
     template<typename T, class ClassTransform = add_reference<_> >
     struct components;
    @@ -216,14 +213,17 @@
             

    If T is no callable builtin type, the component types - are an empty sequence and the Tag's meaning is equivalent to the null_tag. + are an empty sequence and the Tag's meaning is equivalent to the null_tag.

    - +
    Copyright © 2004 -2007 Tobias Schwinger

    diff --git a/doc/html/boost_functiontypes/reference/macros.html b/doc/html/boost_functiontypes/reference/macros.html index 48cfda6..ea3f1eb 100644 --- a/doc/html/boost_functiontypes/reference/macros.html +++ b/doc/html/boost_functiontypes/reference/macros.html @@ -1,21 +1,21 @@ - Macros +Macros - + - - - + + + - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,7 +24,8 @@
    BOOST_FT_MAX_ARITY
    @@ -47,9 +48,9 @@

    Expands to a numeric value that describes the maximum function arity supported by the library. @@ -66,17 +67,16 @@

    Expands to a sequence of ternary tuples (these data types are defined in the documentation of the Boost Preprocessor library). Each sequence element describes one calling convention specifier. The first element in each tuple is the - macro suffix for BOOST_FT_CC_*, + macro suffix for BOOST_FT_CC_*, the second element is the name of the tag that describes the calling convention and the third is the name of the specifier. The specifier is allowed to be an empty string, so the third tuple element is either BOOST_PP_EMPTY @@ -106,15 +106,13 @@

    - Enables a specific calling convention. * dentoes the macro suffix, as defined - by BOOST_FT_CC_NAMES - or BOOST_FT_BUILTIN_CC_NAMES. + Enables a specific calling convention. * denotes the macro suffix, as defined + by BOOST_FT_CC_NAMES + or BOOST_FT_BUILTIN_CC_NAMES.

    The macro expands to a list of restrictions, separated by the | @@ -149,9 +147,9 @@

    Defining this macro causes the following macros to be defined, if not defined already: @@ -164,9 +162,9 @@

    This macro allows to change the syntax of callable builtin types. It is useful to handle the compiler specific placement of the calling convention @@ -182,9 +180,9 @@

    Set to void for compilers that insist on a void parameter for nullary function types, empty by default. @@ -192,9 +190,9 @@

    Disables support for cv-qualified function types. Cv-qualified function types are illegal by the current standard version, but there is a pending @@ -209,9 +207,9 @@

    Makes the compiler preprocess as much as possible of the library code (rather than loading already-preprocessed header files) if defined. @@ -219,24 +217,27 @@

    Makes the compiler preprocess the loop over possible names for custom calling conventions (rather than loading an already-preprocessed header file) if defined.

    - This macro is defined automatically if BOOST_FT_CC_NAMES + This macro is defined automatically if BOOST_FT_CC_NAMES has been defined.

    - +
    Copyright © 2004 -2007 Tobias Schwinger

    diff --git a/doc/html/boost_functiontypes/reference/synthesis.html b/doc/html/boost_functiontypes/reference/synthesis.html index f1bed9f..fdf12ab 100644 --- a/doc/html/boost_functiontypes/reference/synthesis.html +++ b/doc/html/boost_functiontypes/reference/synthesis.html @@ -1,23 +1,21 @@ - Class templates - for type synthesis +Class templates for type synthesis - + - - - + + + - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -26,9 +24,9 @@
    function_type
    @@ -41,12 +39,11 @@
    -template<typename Types, typename Tag = null_tag> 
    +template<typename Types, typename Tag = null_tag> 
     struct function_type;
     

    @@ -84,12 +81,11 @@

    -template<typename Types, typename Tag = null_tag> 
    +template<typename Types, typename Tag = null_tag> 
     struct function_pointer;
     

    @@ -127,12 +123,11 @@

    -template<typename Types, typename Tag = null_tag> 
    +template<typename Types, typename Tag = null_tag> 
     struct function_reference;
     

    @@ -170,12 +165,11 @@

    -template<typename Types, typename Tag = null_tag> 
    +template<typename Types, typename Tag = null_tag> 
     struct member_function_pointer;
     

    @@ -220,7 +214,11 @@ - +
    Copyright © 2004 -2007 Tobias Schwinger


    diff --git a/doc/html/boost_functiontypes/reference/tag_types.html b/doc/html/boost_functiontypes/reference/tag_types.html index 955296b..847d74f 100644 --- a/doc/html/boost_functiontypes/reference/tag_types.html +++ b/doc/html/boost_functiontypes/reference/tag_types.html @@ -1,22 +1,21 @@ - Tag Types +Tag Types - + - - - + + + - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -25,7 +24,8 @@
    variadic
    @@ -54,9 +54,9 @@
     typedef unspecified variadic;
     
    @@ -73,9 +73,9 @@
     typedef unspecified non_variadic;
     
    @@ -91,9 +91,9 @@
     typedef unspecified default_cc;
     
    @@ -109,9 +109,9 @@
     typedef unspecified const_qualified;
     
    @@ -127,9 +127,9 @@
     typedef unspecified non_const;
     
    @@ -145,9 +145,9 @@
     typedef unspecified volatile_qualified;
     
    @@ -163,9 +163,9 @@
     typedef unspecified non_volatile;
     
    @@ -181,7 +181,8 @@
     typedef unspecified non_cv;
     
    @@ -199,9 +200,9 @@
     typedef unspecified const_non_volatile;
     
    @@ -219,9 +220,9 @@
     typedef unspecified volatile_non_const;
     
    @@ -239,9 +240,9 @@
     typedef unspecified cv_qualified;
     
    @@ -259,9 +260,9 @@
     typedef unspecified null_tag;
     
    @@ -277,7 +278,8 @@
    + tag +
     template<class Tag1, class Tag2, 
         class Tag3 = null_tag, class Tag4 = null_tag>
    @@ -310,7 +312,11 @@
     
     
    -
    +
    Copyright © 2004 -2007 Tobias Schwinger

    diff --git a/doc/html/boost_functiontypes/use_cases.html b/doc/html/boost_functiontypes/use_cases.html index 803b994..8cee449 100644 --- a/doc/html/boost_functiontypes/use_cases.html +++ b/doc/html/boost_functiontypes/use_cases.html @@ -1,21 +1,21 @@ - Use Cases +Use Cases - + - - + + - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -24,7 +24,8 @@

    Generic libraries that accept callable arguments are common in C++. Accepting a callable argument of builin type often involves a lot of repetitive code @@ -143,8 +144,7 @@ arguments from a type sequence in a single expression:

    -static_cast<function_pointer<Seq>::type>(& overloaded)
    +static_cast<function_pointer<Seq>::type>(& overloaded)
     

    This technique can be occasionally more flexible than template argument deduction @@ -165,7 +165,11 @@ - +
    Copyright © 2004 -2007 Tobias Schwinger


    diff --git a/doc/html/index.html b/doc/html/index.html index 2f32aa2..c95f3f7 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -3,17 +3,17 @@ Chapter 1. Boost.FunctionTypes 2.5 - + - + - + - - + +
    Boost C++ LibrariesHomeHome LibrariesPeopleFAQPeopleFAQ More

    @@ -27,7 +27,7 @@
    -

    +

    Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

    @@ -46,8 +46,8 @@
    - - + +

    Last revised: November 05, 2007 at 18:24:58 +0100

    Last revised: March 14, 2008 at 18:36:46 +0000


    Next
    From 594c1595684db0af6a6271788123a54cfc902fb2 Mon Sep 17 00:00:00 2001 From: Hartmut Kaiser Date: Sun, 20 Apr 2008 13:51:15 +0000 Subject: [PATCH 21/34] Added some parenthesis to disambiguate expressions. [SVN r44631] --- .../function_types/detail/pp_retag_default_cc/master.hpp | 4 ++-- .../detail/pp_retag_default_cc/preprocessed.hpp | 4 ++-- include/boost/function_types/detail/pp_tags/master.hpp | 2 +- include/boost/function_types/detail/pp_tags/preprocessed.hpp | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/include/boost/function_types/detail/pp_retag_default_cc/master.hpp b/include/boost/function_types/detail/pp_retag_default_cc/master.hpp index f97d385..865efce 100644 --- a/include/boost/function_types/detail/pp_retag_default_cc/master.hpp +++ b/include/boost/function_types/detail/pp_retag_default_cc/master.hpp @@ -30,8 +30,8 @@ namespace detail # include BOOST_PP_ASSIGN_SLOT(1) BOOST_STATIC_CONSTANT(bits_t, value = ( - ::boost::function_types::detail::bits::value & BOOST_FT_default_cc - | ::boost::function_types::detail::bits::value & BOOST_PP_SLOT(1) + (::boost::function_types::detail::bits::value & BOOST_FT_default_cc) + | (::boost::function_types::detail::bits::value & BOOST_PP_SLOT(1)) )); }; diff --git a/include/boost/function_types/detail/pp_retag_default_cc/preprocessed.hpp b/include/boost/function_types/detail/pp_retag_default_cc/preprocessed.hpp index c21a4fd..72666d0 100644 --- a/include/boost/function_types/detail/pp_retag_default_cc/preprocessed.hpp +++ b/include/boost/function_types/detail/pp_retag_default_cc/preprocessed.hpp @@ -15,8 +15,8 @@ namespace detail template struct selector_bits { BOOST_STATIC_CONSTANT(bits_t, value = ( -::boost::function_types::detail::bits ::value & 0x00008000 -| ::boost::function_types::detail::bits ::value & 802 +(::boost::function_types::detail::bits ::value & 0x00008000) +| (::boost::function_types::detail::bits ::value & 802) )); }; template struct default_cc_tag; diff --git a/include/boost/function_types/detail/pp_tags/master.hpp b/include/boost/function_types/detail/pp_tags/master.hpp index 783b93c..9cce212 100644 --- a/include/boost/function_types/detail/pp_tags/master.hpp +++ b/include/boost/function_types/detail/pp_tags/master.hpp @@ -82,7 +82,7 @@ namespace detail { ); BOOST_STATIC_CONSTANT(bits_t, combined_bits = - LHS_bits & ~RHS_mask | RHS_bits + (LHS_bits & ~RHS_mask) | RHS_bits ); BOOST_STATIC_CONSTANT(bits_t, combined_mask = diff --git a/include/boost/function_types/detail/pp_tags/preprocessed.hpp b/include/boost/function_types/detail/pp_tags/preprocessed.hpp index 811d62a..823c3cc 100644 --- a/include/boost/function_types/detail/pp_tags/preprocessed.hpp +++ b/include/boost/function_types/detail/pp_tags/preprocessed.hpp @@ -53,7 +53,7 @@ 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 +(LHS_bits & ~RHS_mask) | RHS_bits ); BOOST_STATIC_CONSTANT(bits_t, combined_mask = LHS_mask | RHS_mask From e60e1b82aaeb1e053d0776d4aa4d515997a189e8 Mon Sep 17 00:00:00 2001 From: "Michael A. Jackson" Date: Sat, 1 Nov 2008 13:15:41 +0000 Subject: [PATCH 22/34] Continuing merge of CMake build system files into trunk with the encouragement of Doug Gregor [SVN r49510] --- CMakeLists.txt | 21 +++++++++++++++ test/CMakeLists.txt | 63 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 CMakeLists.txt create mode 100644 test/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..d29e160 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,21 @@ +#---------------------------------------------------------------------------- +# This file was automatically generated from the original CMakeLists.txt file +# Add a variable to hold the headers for the library +set (lib_headers + function_types +) + +# Add a library target to the build system +boost_library_project( + function_types + # SRCDIRS + TESTDIRS test + HEADERS ${lib_headers} + # DOCDIRS + # DESCRIPTION + MODULARIZED + # AUTHORS + # MAINTAINERS +) + + diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt new file mode 100644 index 0000000..fffed17 --- /dev/null +++ b/test/CMakeLists.txt @@ -0,0 +1,63 @@ +boost_test_compile(is_function classification/is_function.cpp) +boost_test_compile(is_function_pointer classification/is_function_pointer.cpp) +boost_test_compile(is_function_reference classification/is_function_reference.cpp) +boost_test_compile(is_member_function_pointer classification/is_member_function_pointer.cpp) +boost_test_compile(is_member_object_pointer classification/is_member_object_pointer.cpp) +boost_test_compile(is_callable_builtin classification/is_callable_builtin.cpp) +boost_test_compile(is_nonmember_callable_builtin classification/is_nonmember_callable_builtin.cpp) +boost_test_compile(is_member_pointer classification/is_member_pointer.cpp) + +boost_test_compile(is_cv_mem_func_ptr classification/is_cv_mem_func_ptr.cpp) +boost_test_compile(is_variadic classification/is_variadic.cpp) +boost_test_compile(is_cv_pointer classification/is_cv_pointer.cpp) + # [ compile classification/is_cv_function.cpp) + +# Decomposition + +boost_test_compile(components decomposition/components.cpp) +boost_test_compile(result_type decomposition/result_type.cpp) +boost_test_compile(function_arity decomposition/function_arity.cpp) +boost_test_compile(parameter_types decomposition/parameter_types.cpp) + +boost_test_compile(components_seq decomposition/components_seq.cpp) +boost_test_compile(class_type_transform decomposition/class_type_transform.cpp) + +boost_test_compile_fail(result_type_fail decomposition/result_type_fail.cpp) +boost_test_compile_fail(parameter_types_fail decomposition/parameter_types_fail.cpp) +boost_test_compile_fail(function_arity_fail decomposition/function_arity_fail.cpp) + +# Synthesis + +boost_test_compile(function_type synthesis/function_type.cpp) +boost_test_compile(function_pointer synthesis/function_pointer.cpp) +boost_test_compile(function_reference synthesis/function_reference.cpp) +boost_test_compile(member_function_pointer synthesis/member_function_pointer.cpp) +boost_test_compile(member_object_pointer synthesis/member_object_pointer.cpp) + +boost_test_compile(transformation synthesis/transformation.cpp) +boost_test_compile(mem_func_ptr_cv1 synthesis/mem_func_ptr_cv1.cpp) +boost_test_compile(mem_func_ptr_cv2 synthesis/mem_func_ptr_cv2.cpp) +boost_test_compile(mem_func_ptr_cv_ptr_to_this synthesis/mem_func_ptr_cv_ptr_to_this.cpp) +boost_test_compile(variadic_function_synthesis synthesis/variadic_function_synthesis.cpp) + # [ compile synthesis/cv_function_synthesis.cpp) + +# Reconfiguration + +boost_test_compile(preprocessing_mode reconfiguration/preprocessing_mode.cpp) +boost_test_compile(partial_arity_preprocessing reconfiguration/partial_arity_preprocessing.cpp) +boost_test_compile(cc_preprocessing reconfiguration/cc_preprocessing.cpp) + +# Custom calling conventions + +boost_test_compile(nonmember_ccs custom_ccs/nonmember_ccs.cpp) +boost_test_compile(nonmember_ccs_exact custom_ccs/nonmember_ccs_exact.cpp) +boost_test_compile(member_ccs custom_ccs/member_ccs.cpp) +boost_test_compile(member_ccs_exact custom_ccs/member_ccs_exact.cpp) + +# Code from the examples + +boost_test_compile(interpreter_example ../example/interpreter_example.cpp) +boost_test_compile(result_of_example ../example/result_of_example.cpp) +boost_test_compile(interface_example ../example/interface_example.cpp) +boost_test_compile(fast_mem_fn_example ../example/fast_mem_fn_example.cpp) +boost_test_compile(macro_type_args_example ../example/macro_type_args_example.cpp) From ee8ed76bc519af1eda7a6c66fc2aca18f54d19b4 Mon Sep 17 00:00:00 2001 From: "Michael A. Jackson" Date: Fri, 7 Nov 2008 17:02:56 +0000 Subject: [PATCH 23/34] Updating CMake files to latest trunk. Added dependency information for regression tests and a few new macros for internal use. [SVN r49627] --- test/CMakeLists.txt | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index fffed17..2f03877 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,3 +1,6 @@ +# Get the boost dependencies for the tests +boost_additional_test_dependencies(function_types BOOST_DEPENDS test fusion) + boost_test_compile(is_function classification/is_function.cpp) boost_test_compile(is_function_pointer classification/is_function_pointer.cpp) boost_test_compile(is_function_reference classification/is_function_reference.cpp) @@ -48,16 +51,20 @@ boost_test_compile(partial_arity_preprocessing reconfiguration/partial_arity_pre boost_test_compile(cc_preprocessing reconfiguration/cc_preprocessing.cpp) # Custom calling conventions - boost_test_compile(nonmember_ccs custom_ccs/nonmember_ccs.cpp) boost_test_compile(nonmember_ccs_exact custom_ccs/nonmember_ccs_exact.cpp) -boost_test_compile(member_ccs custom_ccs/member_ccs.cpp) -boost_test_compile(member_ccs_exact custom_ccs/member_ccs_exact.cpp) +message(STATUS "Function_Types/test/custom_ccs/member_ccs.cpp Needs love") +#boost_test_compile(member_ccs custom_ccs/member_ccs.cpp) +message(STATUS "Function_Types/test/custom_ccs/member_ccs_exact.cpp Needs love") +#boost_test_compile(member_ccs_exact custom_ccs/member_ccs_exact.cpp) + # Code from the examples - +# Include the "example" directory +include_directories("${CMAKE_CURRENT_SOURCE_DIR}/example") boost_test_compile(interpreter_example ../example/interpreter_example.cpp) boost_test_compile(result_of_example ../example/result_of_example.cpp) boost_test_compile(interface_example ../example/interface_example.cpp) -boost_test_compile(fast_mem_fn_example ../example/fast_mem_fn_example.cpp) +message(STATUS "Function_Types/example/fast_mem_fn_example.cpp Needs love") +#boost_test_compile(fast_mem_fn_example ../example/fast_mem_fn_example.cpp) boost_test_compile(macro_type_args_example ../example/macro_type_args_example.cpp) From 8554f430fe501d94bd34153909e200c4239e88a6 Mon Sep 17 00:00:00 2001 From: "Michael A. Jackson" Date: Fri, 7 Nov 2008 17:05:27 +0000 Subject: [PATCH 24/34] Updating dependency information for modularized libraries. [SVN r49628] --- module.cmake | 1 + 1 file changed, 1 insertion(+) create mode 100644 module.cmake diff --git a/module.cmake b/module.cmake new file mode 100644 index 0000000..9943033 --- /dev/null +++ b/module.cmake @@ -0,0 +1 @@ +boost_module(function_types DEPENDS mpl detail) \ No newline at end of file From b7da1bd1ab1f58c21c83ca2df3fc1d6a12c642de Mon Sep 17 00:00:00 2001 From: Tobias Schwinger Date: Fri, 28 Nov 2008 11:38:38 +0000 Subject: [PATCH 25/34] adds tests with const result [SVN r49980] --- test/decomposition/result_type.cpp | 47 ++++++++++++++++++++++++++---- 1 file changed, 41 insertions(+), 6 deletions(-) diff --git a/test/decomposition/result_type.cpp b/test/decomposition/result_type.cpp index 8f1157d..f55eb85 100644 --- a/test/decomposition/result_type.cpp +++ b/test/decomposition/result_type.cpp @@ -16,12 +16,19 @@ namespace ft = boost::function_types; class C; typedef C func(); +typedef C const c_func(); typedef C (*func_ptr)(); +typedef C const (*c_func_ptr)(); typedef C (&func_ref)(); +typedef C const (&c_func_ref)(); typedef C (C::*mem_func_ptr)(); -typedef C (C::*c_mem_func_ptr)() const; -typedef C (C::*v_mem_func_ptr)() volatile; -typedef C (C::*cv_mem_func_ptr)() const volatile; +typedef C const (C::*c_mem_func_ptr)(); +typedef C (C::*mem_func_ptr_c)() const; +typedef C const (C::*c_mem_func_ptr_c)() const; +typedef C (C::*mem_func_ptr_v)() volatile; +typedef C const (C::*c_mem_func_ptr_v)() volatile; +typedef C (C::*mem_func_ptr_cv)() const volatile; +typedef C const (C::*c_mem_func_ptr_cv)() const volatile; typedef int C::* mem_ptr; typedef int const C::* c_mem_ptr; @@ -29,28 +36,56 @@ BOOST_MPL_ASSERT(( boost::is_same::type,C> )); +BOOST_MPL_ASSERT(( + boost::is_same::type,C const> +)); + BOOST_MPL_ASSERT(( boost::is_same::type,C> )); +BOOST_MPL_ASSERT(( + boost::is_same::type,C const> +)); + BOOST_MPL_ASSERT(( boost::is_same::type,C> )); +BOOST_MPL_ASSERT(( + boost::is_same::type,C const> +)); + BOOST_MPL_ASSERT(( boost::is_same::type,C> )); BOOST_MPL_ASSERT(( - boost::is_same::type,C> + boost::is_same::type,C const> )); BOOST_MPL_ASSERT(( - boost::is_same::type,C> + boost::is_same::type,C> )); BOOST_MPL_ASSERT(( - boost::is_same::type,C> + boost::is_same::type,C const> +)); + +BOOST_MPL_ASSERT(( + boost::is_same::type,C> +)); + +BOOST_MPL_ASSERT(( + boost::is_same::type,C const> +)); + +BOOST_MPL_ASSERT(( + boost::is_same::type,C> +)); + +BOOST_MPL_ASSERT(( + boost::is_same::type,C const> )); BOOST_MPL_ASSERT(( From 1b4fdee6ff8822e495aa2405993bde362b40ca6c Mon Sep 17 00:00:00 2001 From: Vladimir Prus Date: Thu, 4 Jun 2009 09:36:17 +0000 Subject: [PATCH 26/34] Cleanup function_types Jamfile. Make it directly depends on Wave target. Simplify naming of targets. Addresses #1653 [SVN r53619] --- build/Jamfile | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/build/Jamfile b/build/Jamfile index bace553..38b185a 100644 --- a/build/Jamfile +++ b/build/Jamfile @@ -6,31 +6,25 @@ # Generates preprocessed files with wave. -rule wave -{ - Depends $1 : $2 ; -} - actions wave { - ../../../dist/bin/wave -S../../.. $(>) -o $(<) + $(>[1]) -S../../.. $(>[2]) -o $(<) } -make ../../../libs/function_types/build/timestamps/arity_loops - : preprocess_arity_loops.cpp : wave +W = ../../../tools/wave/build//wave ; + +make arity_loops + : preprocess_arity_loops.cpp $(W) : wave : build/timestamps ; -explicit ../../../libs/function_types/build/timestamps/arity_loops ; - -make ../../../libs/function_types/build/timestamps/encoding - : preprocess_encoding.cpp : wave +make encoding + : preprocess_encoding.cpp $(W) : wave : build/timestamps ; -explicit ../../../libs/function_types/build/timestamps/encoding ; -make ../../../libs/function_types/build/timestamps/cc_names - : preprocess_cc_names.cpp : wave +make cc_names + : preprocess_cc_names.cpp $(W) : wave : build/timestamps ; - -explicit ../../../libs/function_types/build/timestamps/cc_names ; + +explicit arity_loops encoding cc_names ; From 0bf0587f589fa40c61642cdc4da343b00a78cd41 Mon Sep 17 00:00:00 2001 From: "Troy D. Straszheim" Date: Sun, 26 Jul 2009 00:49:56 +0000 Subject: [PATCH 27/34] Copyrights on CMakeLists.txt to keep them from clogging up the inspect reports. This is essentially the same commit as r55095 on the release branch. [SVN r55159] --- CMakeLists.txt | 6 ++++++ test/CMakeLists.txt | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index d29e160..6e83c47 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,3 +1,9 @@ +# +# Copyright Troy D. Straszheim +# +# Distributed under the Boost Software License, Version 1.0. +# See http://www.boost.org/LICENSE_1_0.txt +# #---------------------------------------------------------------------------- # This file was automatically generated from the original CMakeLists.txt file # Add a variable to hold the headers for the library diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 2f03877..1a5a0c3 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,3 +1,9 @@ +# +# Copyright Troy D. Straszheim +# +# Distributed under the Boost Software License, Version 1.0. +# See http://www.boost.org/LICENSE_1_0.txt +# # Get the boost dependencies for the tests boost_additional_test_dependencies(function_types BOOST_DEPENDS test fusion) From d3b53cbdf8834e90ece9652e3e551d9f437ad214 Mon Sep 17 00:00:00 2001 From: Stefan Seefeld Date: Sat, 19 Sep 2009 02:32:41 +0000 Subject: [PATCH 28/34] Merged 2009 GSoC work from sandbox-branches/bhy/py3k branch back into trunk. [SVN r56305] --- .../detail/components_impl/arity10_0.hpp | 1 - .../detail/components_impl/arity10_1.hpp | 1 - .../detail/components_impl/arity20_0.hpp | 1 - .../detail/components_impl/arity20_1.hpp | 1 - .../detail/components_impl/arity30_0.hpp | 1 - .../detail/components_impl/arity30_1.hpp | 1 - .../detail/components_impl/arity40_0.hpp | 1 - .../detail/components_impl/arity40_1.hpp | 1 - .../detail/components_impl/arity50_0.hpp | 1 - .../detail/components_impl/arity50_1.hpp | 1 - .../detail/synthesize_impl/arity10_0.hpp | 1 - .../detail/synthesize_impl/arity20_0.hpp | 339 +--------------- .../detail/synthesize_impl/arity30_0.hpp | 384 +----------------- 13 files changed, 2 insertions(+), 732 deletions(-) diff --git a/include/boost/function_types/detail/components_impl/arity10_0.hpp b/include/boost/function_types/detail/components_impl/arity10_0.hpp index f96c6a9..e60d254 100644 --- a/include/boost/function_types/detail/components_impl/arity10_0.hpp +++ b/include/boost/function_types/detail/components_impl/arity10_0.hpp @@ -129,4 +129,3 @@ typedef components_mpl_sequence_tag tag; typedef mpl::integral_c function_arity; typedef mpl::vector11< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 > types; }; - diff --git a/include/boost/function_types/detail/components_impl/arity10_1.hpp b/include/boost/function_types/detail/components_impl/arity10_1.hpp index 1b06a97..28e0762 100644 --- a/include/boost/function_types/detail/components_impl/arity10_1.hpp +++ b/include/boost/function_types/detail/components_impl/arity10_1.hpp @@ -119,4 +119,3 @@ typedef components_mpl_sequence_tag tag; typedef mpl::integral_c function_arity; typedef mpl::vector11< R, typename class_transform ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 > types; }; - diff --git a/include/boost/function_types/detail/components_impl/arity20_0.hpp b/include/boost/function_types/detail/components_impl/arity20_0.hpp index f6b2ca8..ab5f7c8 100644 --- a/include/boost/function_types/detail/components_impl/arity20_0.hpp +++ b/include/boost/function_types/detail/components_impl/arity20_0.hpp @@ -120,4 +120,3 @@ typedef components_mpl_sequence_tag tag; typedef mpl::integral_c function_arity; typedef mpl::vector21< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 > types; }; - diff --git a/include/boost/function_types/detail/components_impl/arity20_1.hpp b/include/boost/function_types/detail/components_impl/arity20_1.hpp index 1688e6b..1275d90 100644 --- a/include/boost/function_types/detail/components_impl/arity20_1.hpp +++ b/include/boost/function_types/detail/components_impl/arity20_1.hpp @@ -120,4 +120,3 @@ typedef components_mpl_sequence_tag tag; typedef mpl::integral_c function_arity; typedef mpl::vector21< R, typename class_transform ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 > types; }; - diff --git a/include/boost/function_types/detail/components_impl/arity30_0.hpp b/include/boost/function_types/detail/components_impl/arity30_0.hpp index e85eb3a..827470b 100644 --- a/include/boost/function_types/detail/components_impl/arity30_0.hpp +++ b/include/boost/function_types/detail/components_impl/arity30_0.hpp @@ -120,4 +120,3 @@ typedef components_mpl_sequence_tag tag; typedef mpl::integral_c function_arity; typedef mpl::vector31< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 > types; }; - diff --git a/include/boost/function_types/detail/components_impl/arity30_1.hpp b/include/boost/function_types/detail/components_impl/arity30_1.hpp index 290d21e..9071815 100644 --- a/include/boost/function_types/detail/components_impl/arity30_1.hpp +++ b/include/boost/function_types/detail/components_impl/arity30_1.hpp @@ -120,4 +120,3 @@ typedef components_mpl_sequence_tag tag; typedef mpl::integral_c function_arity; typedef mpl::vector31< R, typename class_transform ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 > types; }; - diff --git a/include/boost/function_types/detail/components_impl/arity40_0.hpp b/include/boost/function_types/detail/components_impl/arity40_0.hpp index f1a2410..45c678f 100644 --- a/include/boost/function_types/detail/components_impl/arity40_0.hpp +++ b/include/boost/function_types/detail/components_impl/arity40_0.hpp @@ -120,4 +120,3 @@ typedef components_mpl_sequence_tag tag; typedef mpl::integral_c function_arity; typedef mpl::vector41< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 > types; }; - diff --git a/include/boost/function_types/detail/components_impl/arity40_1.hpp b/include/boost/function_types/detail/components_impl/arity40_1.hpp index e1741cb..132ec52 100644 --- a/include/boost/function_types/detail/components_impl/arity40_1.hpp +++ b/include/boost/function_types/detail/components_impl/arity40_1.hpp @@ -120,4 +120,3 @@ typedef components_mpl_sequence_tag tag; typedef mpl::integral_c function_arity; typedef mpl::vector41< R, typename class_transform ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 > types; }; - diff --git a/include/boost/function_types/detail/components_impl/arity50_0.hpp b/include/boost/function_types/detail/components_impl/arity50_0.hpp index 693a05d..54e64e1 100644 --- a/include/boost/function_types/detail/components_impl/arity50_0.hpp +++ b/include/boost/function_types/detail/components_impl/arity50_0.hpp @@ -120,4 +120,3 @@ typedef components_mpl_sequence_tag tag; typedef mpl::integral_c function_arity; typedef mpl::vector51< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49 > types; }; - diff --git a/include/boost/function_types/detail/components_impl/arity50_1.hpp b/include/boost/function_types/detail/components_impl/arity50_1.hpp index 9bc1616..d9da37b 100644 --- a/include/boost/function_types/detail/components_impl/arity50_1.hpp +++ b/include/boost/function_types/detail/components_impl/arity50_1.hpp @@ -120,4 +120,3 @@ typedef components_mpl_sequence_tag tag; typedef mpl::integral_c function_arity; typedef mpl::vector51< R, typename class_transform ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49 > types; }; - diff --git a/include/boost/function_types/detail/synthesize_impl/arity10_0.hpp b/include/boost/function_types/detail/synthesize_impl/arity10_0.hpp index ad22e50..0e6c64b 100644 --- a/include/boost/function_types/detail/synthesize_impl/arity10_0.hpp +++ b/include/boost/function_types/detail/synthesize_impl/arity10_0.hpp @@ -331,4 +331,3 @@ typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,10) }; # undef BOOST_FT_make_type # undef BOOST_FT_make_type_impl - diff --git a/include/boost/function_types/detail/synthesize_impl/arity20_0.hpp b/include/boost/function_types/detail/synthesize_impl/arity20_0.hpp index cb62e69..15f1aeb 100644 --- a/include/boost/function_types/detail/synthesize_impl/arity20_0.hpp +++ b/include/boost/function_types/detail/synthesize_impl/arity20_0.hpp @@ -177,341 +177,4 @@ 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 struct synthesize_impl_i -{ -private: -typedef typename mpl::begin ::type iter_0; -typedef typename mpl::next< iter_0 > ::type iter_1; -typedef typename mpl::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 struct synthesize_impl_i -{ -private: -typedef typename mpl::begin ::type iter_0; -typedef typename mpl::next< iter_0 > ::type iter_1; -typedef typename mpl::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 struct synthesize_impl_i -{ -private: -typedef typename mpl::begin ::type iter_0; -typedef typename mpl::next< iter_0 > ::type iter_1; -typedef typename mpl::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 struct synthesize_impl_i -{ -private: -typedef typename mpl::begin ::type iter_0; -typedef typename mpl::next< iter_0 > ::type iter_1; -typedef typename mpl::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 struct synthesize_impl_i -{ -private: -typedef typename mpl::begin ::type iter_0; -typedef typename mpl::next< iter_0 > ::type iter_1; -typedef typename mpl::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 struct synthesize_impl_i -{ -private: -typedef typename mpl::begin ::type iter_0; -typedef typename mpl::next< iter_0 > ::type iter_1; -typedef typename mpl::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 - +, typename mpl::deref< iter_1 > ::type \ No newline at end of file diff --git a/include/boost/function_types/detail/synthesize_impl/arity30_0.hpp b/include/boost/function_types/detail/synthesize_impl/arity30_0.hpp index 63a64f0..c1f1194 100644 --- a/include/boost/function_types/detail/synthesize_impl/arity30_0.hpp +++ b/include/boost/function_types/detail/synthesize_impl/arity30_0.hpp @@ -332,386 +332,4 @@ typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,25) , 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 struct synthesize_impl_i -{ -private: -typedef typename mpl::begin ::type iter_0; -typedef typename mpl::next< iter_0 > ::type iter_1; -typedef typename mpl::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 struct synthesize_impl_i -{ -private: -typedef typename mpl::begin ::type iter_0; -typedef typename mpl::next< iter_0 > ::type iter_1; -typedef typename mpl::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 struct synthesize_impl_i -{ -private: -typedef typename mpl::begin ::type iter_0; -typedef typename mpl::next< iter_0 > ::type iter_1; -typedef typename mpl::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 struct synthesize_impl_i -{ -private: -typedef typename mpl::begin ::type iter_0; -typedef typename mpl::next< iter_0 > ::type iter_1; -typedef typename mpl::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 struct synthesize_impl_i -{ -private: -typedef typename mpl::begin ::type iter_0; -typedef typename mpl::next< iter_0 > ::type iter_1; -typedef typename mpl::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 - +, typename mpl::deref< iter_19 \ No newline at end of file From 64776ee43cb339a4fbbc747d1d8e3e69449106f6 Mon Sep 17 00:00:00 2001 From: "Troy D. Straszheim" Date: Sat, 17 Oct 2009 02:07:38 +0000 Subject: [PATCH 29/34] rm cmake from trunk. I'm not entirely sure this is necessary to satisfy the inspect script, but I'm not taking any chances, and it is easy to put back [SVN r56942] --- CMakeLists.txt | 27 ---------------- module.cmake | 1 - test/CMakeLists.txt | 76 --------------------------------------------- 3 files changed, 104 deletions(-) delete mode 100644 CMakeLists.txt delete mode 100644 module.cmake delete mode 100644 test/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt deleted file mode 100644 index 6e83c47..0000000 --- a/CMakeLists.txt +++ /dev/null @@ -1,27 +0,0 @@ -# -# Copyright Troy D. Straszheim -# -# Distributed under the Boost Software License, Version 1.0. -# See http://www.boost.org/LICENSE_1_0.txt -# -#---------------------------------------------------------------------------- -# This file was automatically generated from the original CMakeLists.txt file -# Add a variable to hold the headers for the library -set (lib_headers - function_types -) - -# Add a library target to the build system -boost_library_project( - function_types - # SRCDIRS - TESTDIRS test - HEADERS ${lib_headers} - # DOCDIRS - # DESCRIPTION - MODULARIZED - # AUTHORS - # MAINTAINERS -) - - diff --git a/module.cmake b/module.cmake deleted file mode 100644 index 9943033..0000000 --- a/module.cmake +++ /dev/null @@ -1 +0,0 @@ -boost_module(function_types DEPENDS mpl detail) \ No newline at end of file diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt deleted file mode 100644 index 1a5a0c3..0000000 --- a/test/CMakeLists.txt +++ /dev/null @@ -1,76 +0,0 @@ -# -# Copyright Troy D. Straszheim -# -# Distributed under the Boost Software License, Version 1.0. -# See http://www.boost.org/LICENSE_1_0.txt -# -# Get the boost dependencies for the tests -boost_additional_test_dependencies(function_types BOOST_DEPENDS test fusion) - -boost_test_compile(is_function classification/is_function.cpp) -boost_test_compile(is_function_pointer classification/is_function_pointer.cpp) -boost_test_compile(is_function_reference classification/is_function_reference.cpp) -boost_test_compile(is_member_function_pointer classification/is_member_function_pointer.cpp) -boost_test_compile(is_member_object_pointer classification/is_member_object_pointer.cpp) -boost_test_compile(is_callable_builtin classification/is_callable_builtin.cpp) -boost_test_compile(is_nonmember_callable_builtin classification/is_nonmember_callable_builtin.cpp) -boost_test_compile(is_member_pointer classification/is_member_pointer.cpp) - -boost_test_compile(is_cv_mem_func_ptr classification/is_cv_mem_func_ptr.cpp) -boost_test_compile(is_variadic classification/is_variadic.cpp) -boost_test_compile(is_cv_pointer classification/is_cv_pointer.cpp) - # [ compile classification/is_cv_function.cpp) - -# Decomposition - -boost_test_compile(components decomposition/components.cpp) -boost_test_compile(result_type decomposition/result_type.cpp) -boost_test_compile(function_arity decomposition/function_arity.cpp) -boost_test_compile(parameter_types decomposition/parameter_types.cpp) - -boost_test_compile(components_seq decomposition/components_seq.cpp) -boost_test_compile(class_type_transform decomposition/class_type_transform.cpp) - -boost_test_compile_fail(result_type_fail decomposition/result_type_fail.cpp) -boost_test_compile_fail(parameter_types_fail decomposition/parameter_types_fail.cpp) -boost_test_compile_fail(function_arity_fail decomposition/function_arity_fail.cpp) - -# Synthesis - -boost_test_compile(function_type synthesis/function_type.cpp) -boost_test_compile(function_pointer synthesis/function_pointer.cpp) -boost_test_compile(function_reference synthesis/function_reference.cpp) -boost_test_compile(member_function_pointer synthesis/member_function_pointer.cpp) -boost_test_compile(member_object_pointer synthesis/member_object_pointer.cpp) - -boost_test_compile(transformation synthesis/transformation.cpp) -boost_test_compile(mem_func_ptr_cv1 synthesis/mem_func_ptr_cv1.cpp) -boost_test_compile(mem_func_ptr_cv2 synthesis/mem_func_ptr_cv2.cpp) -boost_test_compile(mem_func_ptr_cv_ptr_to_this synthesis/mem_func_ptr_cv_ptr_to_this.cpp) -boost_test_compile(variadic_function_synthesis synthesis/variadic_function_synthesis.cpp) - # [ compile synthesis/cv_function_synthesis.cpp) - -# Reconfiguration - -boost_test_compile(preprocessing_mode reconfiguration/preprocessing_mode.cpp) -boost_test_compile(partial_arity_preprocessing reconfiguration/partial_arity_preprocessing.cpp) -boost_test_compile(cc_preprocessing reconfiguration/cc_preprocessing.cpp) - -# Custom calling conventions -boost_test_compile(nonmember_ccs custom_ccs/nonmember_ccs.cpp) -boost_test_compile(nonmember_ccs_exact custom_ccs/nonmember_ccs_exact.cpp) -message(STATUS "Function_Types/test/custom_ccs/member_ccs.cpp Needs love") -#boost_test_compile(member_ccs custom_ccs/member_ccs.cpp) -message(STATUS "Function_Types/test/custom_ccs/member_ccs_exact.cpp Needs love") -#boost_test_compile(member_ccs_exact custom_ccs/member_ccs_exact.cpp) - - -# Code from the examples -# Include the "example" directory -include_directories("${CMAKE_CURRENT_SOURCE_DIR}/example") -boost_test_compile(interpreter_example ../example/interpreter_example.cpp) -boost_test_compile(result_of_example ../example/result_of_example.cpp) -boost_test_compile(interface_example ../example/interface_example.cpp) -message(STATUS "Function_Types/example/fast_mem_fn_example.cpp Needs love") -#boost_test_compile(fast_mem_fn_example ../example/fast_mem_fn_example.cpp) -boost_test_compile(macro_type_args_example ../example/macro_type_args_example.cpp) From e39914bddd4f40582be94c9c202877291bd8444f Mon Sep 17 00:00:00 2001 From: "Troy D. Straszheim" Date: Thu, 3 Dec 2009 22:20:47 +0000 Subject: [PATCH 30/34] Undo r56305 [SVN r58129] --- .../detail/components_impl/arity10_0.hpp | 1 + .../detail/components_impl/arity10_1.hpp | 1 + .../detail/components_impl/arity20_0.hpp | 1 + .../detail/components_impl/arity20_1.hpp | 1 + .../detail/components_impl/arity30_0.hpp | 1 + .../detail/components_impl/arity30_1.hpp | 1 + .../detail/components_impl/arity40_0.hpp | 1 + .../detail/components_impl/arity40_1.hpp | 1 + .../detail/components_impl/arity50_0.hpp | 1 + .../detail/components_impl/arity50_1.hpp | 1 + .../detail/synthesize_impl/arity10_0.hpp | 1 + .../detail/synthesize_impl/arity20_0.hpp | 339 +++++++++++++++- .../detail/synthesize_impl/arity30_0.hpp | 384 +++++++++++++++++- 13 files changed, 732 insertions(+), 2 deletions(-) diff --git a/include/boost/function_types/detail/components_impl/arity10_0.hpp b/include/boost/function_types/detail/components_impl/arity10_0.hpp index e60d254..f96c6a9 100644 --- a/include/boost/function_types/detail/components_impl/arity10_0.hpp +++ b/include/boost/function_types/detail/components_impl/arity10_0.hpp @@ -129,3 +129,4 @@ typedef components_mpl_sequence_tag tag; typedef mpl::integral_c function_arity; typedef mpl::vector11< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 > types; }; + diff --git a/include/boost/function_types/detail/components_impl/arity10_1.hpp b/include/boost/function_types/detail/components_impl/arity10_1.hpp index 28e0762..1b06a97 100644 --- a/include/boost/function_types/detail/components_impl/arity10_1.hpp +++ b/include/boost/function_types/detail/components_impl/arity10_1.hpp @@ -119,3 +119,4 @@ typedef components_mpl_sequence_tag tag; typedef mpl::integral_c function_arity; typedef mpl::vector11< R, typename class_transform ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 > types; }; + diff --git a/include/boost/function_types/detail/components_impl/arity20_0.hpp b/include/boost/function_types/detail/components_impl/arity20_0.hpp index ab5f7c8..f6b2ca8 100644 --- a/include/boost/function_types/detail/components_impl/arity20_0.hpp +++ b/include/boost/function_types/detail/components_impl/arity20_0.hpp @@ -120,3 +120,4 @@ typedef components_mpl_sequence_tag tag; typedef mpl::integral_c function_arity; typedef mpl::vector21< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 > types; }; + diff --git a/include/boost/function_types/detail/components_impl/arity20_1.hpp b/include/boost/function_types/detail/components_impl/arity20_1.hpp index 1275d90..1688e6b 100644 --- a/include/boost/function_types/detail/components_impl/arity20_1.hpp +++ b/include/boost/function_types/detail/components_impl/arity20_1.hpp @@ -120,3 +120,4 @@ typedef components_mpl_sequence_tag tag; typedef mpl::integral_c function_arity; typedef mpl::vector21< R, typename class_transform ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 > types; }; + diff --git a/include/boost/function_types/detail/components_impl/arity30_0.hpp b/include/boost/function_types/detail/components_impl/arity30_0.hpp index 827470b..e85eb3a 100644 --- a/include/boost/function_types/detail/components_impl/arity30_0.hpp +++ b/include/boost/function_types/detail/components_impl/arity30_0.hpp @@ -120,3 +120,4 @@ typedef components_mpl_sequence_tag tag; typedef mpl::integral_c function_arity; typedef mpl::vector31< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 > types; }; + diff --git a/include/boost/function_types/detail/components_impl/arity30_1.hpp b/include/boost/function_types/detail/components_impl/arity30_1.hpp index 9071815..290d21e 100644 --- a/include/boost/function_types/detail/components_impl/arity30_1.hpp +++ b/include/boost/function_types/detail/components_impl/arity30_1.hpp @@ -120,3 +120,4 @@ typedef components_mpl_sequence_tag tag; typedef mpl::integral_c function_arity; typedef mpl::vector31< R, typename class_transform ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 > types; }; + diff --git a/include/boost/function_types/detail/components_impl/arity40_0.hpp b/include/boost/function_types/detail/components_impl/arity40_0.hpp index 45c678f..f1a2410 100644 --- a/include/boost/function_types/detail/components_impl/arity40_0.hpp +++ b/include/boost/function_types/detail/components_impl/arity40_0.hpp @@ -120,3 +120,4 @@ typedef components_mpl_sequence_tag tag; typedef mpl::integral_c function_arity; typedef mpl::vector41< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 > types; }; + diff --git a/include/boost/function_types/detail/components_impl/arity40_1.hpp b/include/boost/function_types/detail/components_impl/arity40_1.hpp index 132ec52..e1741cb 100644 --- a/include/boost/function_types/detail/components_impl/arity40_1.hpp +++ b/include/boost/function_types/detail/components_impl/arity40_1.hpp @@ -120,3 +120,4 @@ typedef components_mpl_sequence_tag tag; typedef mpl::integral_c function_arity; typedef mpl::vector41< R, typename class_transform ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 > types; }; + diff --git a/include/boost/function_types/detail/components_impl/arity50_0.hpp b/include/boost/function_types/detail/components_impl/arity50_0.hpp index 54e64e1..693a05d 100644 --- a/include/boost/function_types/detail/components_impl/arity50_0.hpp +++ b/include/boost/function_types/detail/components_impl/arity50_0.hpp @@ -120,3 +120,4 @@ typedef components_mpl_sequence_tag tag; typedef mpl::integral_c function_arity; typedef mpl::vector51< R , T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49 > types; }; + diff --git a/include/boost/function_types/detail/components_impl/arity50_1.hpp b/include/boost/function_types/detail/components_impl/arity50_1.hpp index d9da37b..9bc1616 100644 --- a/include/boost/function_types/detail/components_impl/arity50_1.hpp +++ b/include/boost/function_types/detail/components_impl/arity50_1.hpp @@ -120,3 +120,4 @@ typedef components_mpl_sequence_tag tag; typedef mpl::integral_c function_arity; typedef mpl::vector51< R, typename class_transform ::type , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49 > types; }; + diff --git a/include/boost/function_types/detail/synthesize_impl/arity10_0.hpp b/include/boost/function_types/detail/synthesize_impl/arity10_0.hpp index 0e6c64b..ad22e50 100644 --- a/include/boost/function_types/detail/synthesize_impl/arity10_0.hpp +++ b/include/boost/function_types/detail/synthesize_impl/arity10_0.hpp @@ -331,3 +331,4 @@ typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,10) }; # undef BOOST_FT_make_type # undef BOOST_FT_make_type_impl + diff --git a/include/boost/function_types/detail/synthesize_impl/arity20_0.hpp b/include/boost/function_types/detail/synthesize_impl/arity20_0.hpp index 15f1aeb..cb62e69 100644 --- a/include/boost/function_types/detail/synthesize_impl/arity20_0.hpp +++ b/include/boost/function_types/detail/synthesize_impl/arity20_0.hpp @@ -177,4 +177,341 @@ 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 \ No newline at end of file +, 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 struct synthesize_impl_i +{ +private: +typedef typename mpl::begin ::type iter_0; +typedef typename mpl::next< iter_0 > ::type iter_1; +typedef typename mpl::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 struct synthesize_impl_i +{ +private: +typedef typename mpl::begin ::type iter_0; +typedef typename mpl::next< iter_0 > ::type iter_1; +typedef typename mpl::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 struct synthesize_impl_i +{ +private: +typedef typename mpl::begin ::type iter_0; +typedef typename mpl::next< iter_0 > ::type iter_1; +typedef typename mpl::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 struct synthesize_impl_i +{ +private: +typedef typename mpl::begin ::type iter_0; +typedef typename mpl::next< iter_0 > ::type iter_1; +typedef typename mpl::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 struct synthesize_impl_i +{ +private: +typedef typename mpl::begin ::type iter_0; +typedef typename mpl::next< iter_0 > ::type iter_1; +typedef typename mpl::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 struct synthesize_impl_i +{ +private: +typedef typename mpl::begin ::type iter_0; +typedef typename mpl::next< iter_0 > ::type iter_1; +typedef typename mpl::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 + diff --git a/include/boost/function_types/detail/synthesize_impl/arity30_0.hpp b/include/boost/function_types/detail/synthesize_impl/arity30_0.hpp index c1f1194..63a64f0 100644 --- a/include/boost/function_types/detail/synthesize_impl/arity30_0.hpp +++ b/include/boost/function_types/detail/synthesize_impl/arity30_0.hpp @@ -332,4 +332,386 @@ typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,25) , typename mpl::deref< iter_16 > ::type , typename mpl::deref< iter_17 > ::type , typename mpl::deref< iter_18 > ::type -, typename mpl::deref< iter_19 \ No newline at end of file +, 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 struct synthesize_impl_i +{ +private: +typedef typename mpl::begin ::type iter_0; +typedef typename mpl::next< iter_0 > ::type iter_1; +typedef typename mpl::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 struct synthesize_impl_i +{ +private: +typedef typename mpl::begin ::type iter_0; +typedef typename mpl::next< iter_0 > ::type iter_1; +typedef typename mpl::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 struct synthesize_impl_i +{ +private: +typedef typename mpl::begin ::type iter_0; +typedef typename mpl::next< iter_0 > ::type iter_1; +typedef typename mpl::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 struct synthesize_impl_i +{ +private: +typedef typename mpl::begin ::type iter_0; +typedef typename mpl::next< iter_0 > ::type iter_1; +typedef typename mpl::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 struct synthesize_impl_i +{ +private: +typedef typename mpl::begin ::type iter_0; +typedef typename mpl::next< iter_0 > ::type iter_1; +typedef typename mpl::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 + From a05ddf58efc32ba1bf10277d5719d1224d854353 Mon Sep 17 00:00:00 2001 From: Steven Watanabe Date: Sat, 12 Jun 2010 00:28:54 +0000 Subject: [PATCH 31/34] Update Borland workarounds. Fixes #3162 [SVN r62827] --- include/boost/function_types/components.hpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/include/boost/function_types/components.hpp b/include/boost/function_types/components.hpp index a4432c5..53d81b6 100644 --- a/include/boost/function_types/components.hpp +++ b/include/boost/function_types/components.hpp @@ -23,7 +23,7 @@ #include #include -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x656)) +#if BOOST_WORKAROUND(__BORLANDC__, <= 0x565) # include # include @@ -81,14 +81,14 @@ namespace boost namespace detail { template struct components_impl; -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x565)) +#if BOOST_WORKAROUND(__BORLANDC__, <= 0x565) template struct components_bcc; #endif } template struct components -#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x565)) +#if !BOOST_WORKAROUND(__BORLANDC__, <= 0x565) : detail::components_impl #else : detail::components_bcc::type,T, @@ -260,7 +260,7 @@ namespace boost typename detail::class_transform::type > types; }; -#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x565)) +#if !BOOST_WORKAROUND(__BORLANDC__, <= 0x565) # define BOOST_FT_variations BOOST_FT_pointer|BOOST_FT_member_pointer template From 67782067324f9abd3a9668041302d885dae3f507 Mon Sep 17 00:00:00 2001 From: Daniel James Date: Sun, 20 Jun 2010 18:00:48 +0000 Subject: [PATCH 32/34] Update various libraries' documentation build. Mostly to use the images and css files under doc/src instead of doc/html, usually be deleting the settings in order to use the defaults. Also add 'boost.root' to some builds in order to fix links which rely on it. [SVN r63146] --- doc/Jamfile | 2 -- 1 file changed, 2 deletions(-) diff --git a/doc/Jamfile b/doc/Jamfile index fc28d86..ffa96b1 100644 --- a/doc/Jamfile +++ b/doc/Jamfile @@ -12,8 +12,6 @@ boostbook standalone function_types : boost.root=../../../.. - boost.libraries=../../../libraries.htm - html.stylesheet=../../../../doc/html/boostbook.css chunk.first.sections=1 chunk.section.depth=2 generate.section.toc.level=2 From c73823068f326beceaa9a88f032a8eb701bb5855 Mon Sep 17 00:00:00 2001 From: Daniel James Date: Thu, 1 Jul 2010 22:12:30 +0000 Subject: [PATCH 33/34] Rebuild function_types documentation. [SVN r63505] --- .../boost_functiontypes/about_tag_types.html | 39 ++- .../boost_functiontypes/acknowledgements.html | 116 ++++----- .../boost_functiontypes/introduction.html | 55 ++-- doc/html/boost_functiontypes/rationale.html | 43 ++-- doc/html/boost_functiontypes/reference.html | 24 +- .../reference/classification.html | 242 ++++++++---------- .../reference/decomposition.html | 130 +++++----- .../boost_functiontypes/reference/macros.html | 84 +++--- .../reference/synthesis.html | 118 ++++----- .../reference/tag_types.html | 134 ++++------ doc/html/boost_functiontypes/use_cases.html | 39 ++- doc/html/index.html | 30 +-- 12 files changed, 489 insertions(+), 565 deletions(-) diff --git a/doc/html/boost_functiontypes/about_tag_types.html b/doc/html/boost_functiontypes/about_tag_types.html index 7d07a85..7b9e5ec 100644 --- a/doc/html/boost_functiontypes/about_tag_types.html +++ b/doc/html/boost_functiontypes/about_tag_types.html @@ -1,11 +1,11 @@ - + About Tag Types - - - - + + + + @@ -13,16 +13,16 @@ - - - + + +
    Boost C++ Libraries HomeLibrariesPeopleFAQLibrariesPeopleFAQ More

    -PrevUpHomeNext +PrevUpHomeNext
    -
    +
    @@ -35,8 +35,7 @@ These tags can be used to determine whether one property of a type has a particular value.

    -
    -is_function<int(...), variadic>::value // == true
    +
    is_function<int(...), variadic>::value // == true
     is_function<int()   , variadic>::value // == false
     

    @@ -45,22 +44,19 @@ is a callable builtin type, is a compound property tag that describes F. The tag class template can be used to combine property tags.

    -
    -tag<non_const,default_cc> // combination of two properties
    +
    tag<non_const,default_cc> // combination of two properties
     

    When several values for the same property are specified in tag's argument list, only the rightmost one is used; others are ignored.

    -
    -tag<components<F>, default_cc> // overrides F's calling convention property
    +
    tag<components<F>, default_cc> // overrides F's calling convention property
     

    When compound property tag is specified to analyse a type, all of its component properties must match.

    -
    -is_member_function_pointer< F, tag<const_qualified,default_cc> >::value
    +
    is_member_function_pointer< F, tag<const_qualified,default_cc> >::value
     // true for 
     //   F = void(a_class::*)() const
     // false for
    @@ -71,8 +67,7 @@
           Default values are selected for properties not specified by the tag in the
           context of type synthesis.
         

    -
    -// given S = mpl::vector<int,a_class const &>
    +
    // given S = mpl::vector<int,a_class const &>
     
     member_function_pointer<S>::type // is int (a_class::*)() const
     // note: the cv-qualification is picked based on the class type,
    @@ -85,7 +80,7 @@
     
    -

    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost_functiontypes/acknowledgements.html b/doc/html/boost_functiontypes/acknowledgements.html index b0498b7..4f7d0fe 100644 --- a/doc/html/boost_functiontypes/acknowledgements.html +++ b/doc/html/boost_functiontypes/acknowledgements.html @@ -1,27 +1,27 @@ - + Acknowledgements - - - - + + + + - - - + + +
    Boost C++ Libraries HomeLibrariesPeopleFAQLibrariesPeopleFAQ More

    -PrevUpHome +PrevUpHome
    -
    +
    @@ -29,57 +29,57 @@ Thanks go to the following people for supporting the development of this library in one or the other way:

    -
      -
    • - David Abrahams -
    • -
    • - Tom Brinkman -
    • -
    • - Aleksey Gurtovoy -
    • -
    • - Jody Hagins -
    • -
    • - Hartmut Kaiser -
    • -
    • - Andy Little -
    • -
    • - John Maddock -
    • -
    • - Paul Mensonides -
    • -
    • - Alexander Nasonov -
    • -
    • - Richard Smith -
    • -
    • - Rob Stewart -
    • -
    • - Jonathan Turkanis -
    • -
    • - Pavel Vozenilek -
    • -
    • - Steven Watanabe -
    • -
    • - K. Noel Belcourt -
    • +
        +
      • + David Abrahams +
      • +
      • + Tom Brinkman +
      • +
      • + Aleksey Gurtovoy +
      • +
      • + Jody Hagins +
      • +
      • + Hartmut Kaiser +
      • +
      • + Andy Little +
      • +
      • + John Maddock +
      • +
      • + Paul Mensonides +
      • +
      • + Alexander Nasonov +
      • +
      • + Richard Smith +
      • +
      • + Rob Stewart +
      • +
      • + Jonathan Turkanis +
      • +
      • + Pavel Vozenilek +
      • +
      • + Steven Watanabe +
      • +
      • + K. Noel Belcourt +
    -

    -PrevUpHome +PrevUpHome
    diff --git a/doc/html/boost_functiontypes/introduction.html b/doc/html/boost_functiontypes/introduction.html index cdaf6b1..2110a58 100644 --- a/doc/html/boost_functiontypes/introduction.html +++ b/doc/html/boost_functiontypes/introduction.html @@ -1,28 +1,28 @@ - + Introduction - - - - - + + + + + - - - + + +
    Boost C++ Libraries HomeLibrariesPeopleFAQLibrariesPeopleFAQ More

    -PrevUpHomeNext +PrevUpHomeNext
    -
    +
    @@ -37,16 +37,16 @@

    In particular, the library can be used to:

    -
      -
    • - test whether a type is a specific callable, builtin type, -
    • -
    • - extract all component properties from callable, builtin types, and -
    • -
    • - create callable, builtin types from specified properties. -
    • +
        +
      • + test whether a type is a specific callable, builtin type, +
      • +
      • + extract all component properties from callable, builtin types, and +
      • +
      • + create callable, builtin types from specified properties. +

      The library is designed to work well with other Boost libraries and uses well-accepted @@ -56,8 +56,7 @@ Templates that encapsulate boolean or numeric properties define a static member constant called value.

      -
      -is_function_pointer< bool(*)(int) >::value // == true 
      +
      is_function_pointer< bool(*)(int) >::value // == true 
       
       function_arity< bool(*)(int) >::value // == 1
       
      @@ -65,8 +64,7 @@ Templates that encapsulate properties that are single types contain a type member called type.

      -
      -function_type< mpl::vector<bool,int> >::type // is bool(int)
      +
      function_type< mpl::vector<bool,int> >::type // is bool(int)
       
       result_type< bool(&)(int) >::type // is bool
       
      @@ -74,13 +72,12 @@ Templates that encapsulate properties that are type lists model an MPL-compatible type sequence.

      -
      -parameter_types< bool(int) > // models an MPL sequence
      +
      parameter_types< bool(int) > // models an MPL sequence
       
    -

    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost_functiontypes/rationale.html b/doc/html/boost_functiontypes/rationale.html index 5ba69d0..8918fed 100644 --- a/doc/html/boost_functiontypes/rationale.html +++ b/doc/html/boost_functiontypes/rationale.html @@ -1,11 +1,11 @@ - + Rationale - - - - + + + + @@ -13,21 +13,21 @@ - - - + + +
    Boost C++ Libraries HomeLibrariesPeopleFAQLibrariesPeopleFAQ More

    -PrevUpHomeNext +PrevUpHomeNext
    -
    +

    - + Error handling rationale

    @@ -42,7 +42,7 @@ can be spotted easily.

    - + Why MPL Sequences?

    @@ -55,7 +55,7 @@ so another reason is interoperability.

    - + Pointer to member object types

    @@ -64,7 +64,7 @@ functionals.

    - + The ClassTransform template parameter

    @@ -81,7 +81,7 @@ all parameters uniformly.

    - + Why tag types?

    @@ -100,7 +100,7 @@ with older compilers.

    - + Is it safe to have the synthesis templates take a callable builtin type or an MPL sequence as the first template argument? @@ -115,7 +115,7 @@ type a sequence have been included, which can easily violate the ODR.

    - + Why does the hidden this parameter count for the function arity of member functions? @@ -123,11 +123,10 @@

    It was found preferable that the following condition holds:

    -
    -mpl::size< parameter_types<T> >::value == function_arity<T>::value
    +
    mpl::size< parameter_types<T> >::value == function_arity<T>::value
     

    - + Why ignore top-level cv-qualifiers on pointers?

    @@ -138,7 +137,7 @@

    -

    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost_functiontypes/reference.html b/doc/html/boost_functiontypes/reference.html index eacf2d4..512e56f 100644 --- a/doc/html/boost_functiontypes/reference.html +++ b/doc/html/boost_functiontypes/reference.html @@ -1,11 +1,11 @@ - + Reference - - - - + + + + @@ -13,16 +13,16 @@ - - - + + +
    Boost C++ Libraries HomeLibrariesPeopleFAQLibrariesPeopleFAQ More

    -PrevUpHomeNext +PrevUpHomeNext
    -
    +
    @@ -39,7 +39,7 @@
    -

    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost_functiontypes/reference/classification.html b/doc/html/boost_functiontypes/reference/classification.html index 2f49b79..41a5d9f 100644 --- a/doc/html/boost_functiontypes/reference/classification.html +++ b/doc/html/boost_functiontypes/reference/classification.html @@ -1,10 +1,10 @@ - + Class templates for type classification - - - + + + @@ -13,16 +13,16 @@ - - - + + +
    Boost C++ Libraries HomeLibrariesPeopleFAQLibrariesPeopleFAQ More

    -PrevUpHomeNext +PrevUpHomeNext
    -
    +
    -
    +
    -
    -template<typename T, typename Tag = null_tag>
    +
    template<typename T, typename Tag = null_tag>
     struct is_function;
     

    Header

    -
    -#include <boost/function_types/is_function.hpp>
    +
    #include <boost/function_types/is_function.hpp>
     

    T

    - Type to analyze -

    + Type to analyze +

    Tag

    - Further properties required for a positive result -

    + Further properties required for a positive result +

    is_function<T,Tag>

    - Predicate value as MPL - - Integral - Constant -

    + Predicate value as MPL + - Integral + Constant +

    is_function<T,Tag>::value

    - Constant boolean value -

    + Constant boolean value +

    @@ -88,42 +86,40 @@ properties as specified by a property tag.

    -
    +
    -
    -template<typename T, typename Tag = null_tag>
    +
    template<typename T, typename Tag = null_tag>
     struct is_function_pointer;
     

    Header

    -
    -#include <boost/function_types/is_function_pointer.hpp>
    +
    #include <boost/function_types/is_function_pointer.hpp>
     

    T

    - Type to analyze -

    + Type to analyze +

    Tag

    - Further properties required for a positive result -

    + Further properties required for a positive result +

    is_function_pointer<T,Tag>

    - Predicate value MPL - - Integral - Constant -

    + Predicate value MPL + - Integral + Constant +

    is_function_pointer<T,Tag>::value

    - Constant boolean value -

    + Constant boolean value +

    @@ -131,42 +127,40 @@ properties as specified by a property tag.

    -
    +
    -
    -template<typename T, typename Tag = null_tag>
    +
    template<typename T, typename Tag = null_tag>
     struct is_function_reference;
     

    Header

    -
    -#include <boost/function_types/is_function_reference.hpp>
    +
    #include <boost/function_types/is_function_reference.hpp>
     

    T

    - Type to analyze -

    + Type to analyze +

    Tag

    - Further properties required for a positive result -

    + Further properties required for a positive result +

    is_function_reference<T,Tag>

    - Predicate value MPL - - Integral - Constant -

    + Predicate value MPL + - Integral + Constant +

    is_function_reference<T,Tag>::value

    - Constant boolean value -

    + Constant boolean value +

    @@ -174,42 +168,40 @@ additional properties as specified by a property tag.

    -
    +
    -
    -template<typename T, typename Tag = null_tag>
    +
    template<typename T, typename Tag = null_tag>
     struct is_member_pointer;
     

    Header

    -
    -#include <boost/function_types/is_member_pointer.hpp>
    +
    #include <boost/function_types/is_member_pointer.hpp>
     

    T

    - Type to analyze -

    + Type to analyze +

    Tag

    - Further properties required for a positive result -

    + Further properties required for a positive result +

    is_member_pointer<T,Tag>

    - Predicate value MPL - - Integral - Constant -

    + Predicate value MPL + - Integral + Constant +

    is_member_pointer<T,Tag>::value

    - Constant boolean value -

    + Constant boolean value +

    @@ -217,80 +209,76 @@ type, possibly with additional properties as specified by a property tag.

    -
    +
    -
    -template<typename T>
    +
    template<typename T>
     struct is_member_object_pointer;
     

    Header

    -
    -#include <boost/function_types/is_member_object_pointer.hpp>
    +
    #include <boost/function_types/is_member_object_pointer.hpp>
     

    T

    - Type to analyze -

    + Type to analyze +

    is_member_object_pointer<T>

    - Predicate value MPL - - Integral - Constant -

    + Predicate value MPL + - Integral + Constant +

    is_member_object_pointer<T>::value

    - Constant boolean value -

    + Constant boolean value +

    Determines whether a given type is a pointer to member object type.

    -
    +
    -
    -template<typename T, typename Tag = null_tag>
    +
    template<typename T, typename Tag = null_tag>
     struct is_member_function_pointer;
     

    Header

    -
    -#include <boost/function_types/is_member_function_pointer.hpp>
    +
    #include <boost/function_types/is_member_function_pointer.hpp>
     

    T

    - Type to analyze -

    + Type to analyze +

    Tag

    - Further properties required for a positive result -

    + Further properties required for a positive result +

    is_member_function_pointer<T,Tag>

    - Predicate value MPL - - Integral - Constant -

    + Predicate value MPL + - Integral + Constant +

    is_member_function_pointer<T,Tag>::value

    - Constant boolean value -

    + Constant boolean value +

    @@ -298,42 +286,40 @@ with additional properties as specified by a property tag.

    -
    +
    -
    -template<typename T, typename Tag = null_tag>
    +
    template<typename T, typename Tag = null_tag>
     struct is_callable_builtin;
     

    Header

    -
    -#include <boost/function_types/is_callable_builtin.hpp>
    +
    #include <boost/function_types/is_callable_builtin.hpp>
     

    T

    - Type to analyze -

    + Type to analyze +

    Tag

    - Further properties required for a positive result -

    + Further properties required for a positive result +

    is_callable_builtin<T,Tag>

    - Predicate value as MPL - - Integral - Constant -

    + Predicate value as MPL + - Integral + Constant +

    is_callable_builtin<T,Tag>::value

    - Constant boolean value -

    + Constant boolean value +

    @@ -341,42 +327,40 @@ properties as specified by a property tag.

    -
    +
    -
    -template<typename T, typename Tag = null_tag>
    +
    template<typename T, typename Tag = null_tag>
     struct is_nonmember_callable_builtin;
     

    Header

    -
    -#include <boost/function_types/is_nonmember_callable_builtin.hpp>
    +
    #include <boost/function_types/is_nonmember_callable_builtin.hpp>
     

    T

    - Type to analyze -

    + Type to analyze +

    Tag

    - Further properties required for a positive result -

    + Further properties required for a positive result +

    is_nonmember_callable_builtin<T,Tag>

    - Predicate value as MPL - - Integral - Constant -

    + Predicate value as MPL + - Integral + Constant +

    is_nonmember_callable_builtin<T,Tag>::value

    - Constant boolean value -

    + Constant boolean value +

    @@ -388,7 +372,7 @@

    -

    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost_functiontypes/reference/decomposition.html b/doc/html/boost_functiontypes/reference/decomposition.html index b4447e4..be8dc6b 100644 --- a/doc/html/boost_functiontypes/reference/decomposition.html +++ b/doc/html/boost_functiontypes/reference/decomposition.html @@ -1,10 +1,10 @@ - + Class templates for type decomposition - - - + + + @@ -13,16 +13,16 @@ - - - + + +
    Boost C++ Libraries HomeLibrariesPeopleFAQLibrariesPeopleFAQ More

    -PrevUpHomeNext +PrevUpHomeNext
    -
    +
    -
    +
    -
    -template<typename F>
    +
    template<typename F>
     struct result_type;
     

    Header

    -
    -#include <boost/function_types/result_type.hpp>
    +
    #include <boost/function_types/result_type.hpp>
     

    F

    - Type to analyze -

    + Type to analyze +

    result_type<F>::type

    - Result type of F -

    + Result type of F +

    @@ -73,42 +71,40 @@ the type member results in a compile error.

    -
    +
    -
    -template<typename F, class ClassTransform = add_reference<_> >
    +
    template<typename F, class ClassTransform = add_reference<_> >
     struct parameter_types;
     

    Header

    -
    -#include <boost/function_types/parameter_types.hpp>
    +
    #include <boost/function_types/parameter_types.hpp>
     

    F

    - Type to analyze -

    + Type to analyze +

    ClassTransform

    - MPL - Lambda - Expression to transform the class type if F - is a member function pointer -

    + MPL - Lambda + Expression to transform the class type if F + is a member function pointer +

    parameter_types<F,ClassTransform>

    - MPL - Front - / Back - Extensible - Random - Access Sequence of parameter types -

    + MPL - Front + / Back + Extensible + Random + Access Sequence of parameter types +

    @@ -119,38 +115,36 @@ the sequence results in a compile error.

    -
    +
    -
    -template<typename F>
    +
    template<typename F>
     struct function_arity;
     

    Header

    -
    -#include <boost/function_types/function_arity.hpp>
    +
    #include <boost/function_types/function_arity.hpp>
     

    F

    - Callable builtin type -

    + Callable builtin type +

    function_arity<F>

    - Function arity as MPL - - Integral - Constant -

    + Function arity as MPL + - Integral + Constant +

    function_arity<F>::value

    - Constant value of the function arity -

    + Constant value of the function arity +

    @@ -164,46 +158,44 @@ the value results in a compile error.

    -
    +
    -
    -template<typename T, class ClassTransform = add_reference<_> >
    +
    template<typename T, class ClassTransform = add_reference<_> >
     struct components;
     

    Header

    -
    -#include <boost/function_types/components.hpp>
    +
    #include <boost/function_types/components.hpp>
     

    T

    - Type to analyze -

    + Type to analyze +

    ClassTransform

    - MPL - Lambda - Expression to transform the class type if T - is a member function pointer -

    + MPL - Lambda + Expression to transform the class type if T + is a member function pointer +

    components<T,ClassTransform>

    - MPL - Front - / Back - Extensible - Random - Access Sequence of all component types and property tag -

    + MPL - Front + / Back + Extensible + Random + Access Sequence of all component types and property tag +

    components<T,ClassTransform>::types

    - Decorated MPL Sequence, exposed for optimization -

    + Decorated MPL Sequence, exposed for optimization +

    @@ -219,7 +211,7 @@

    -

    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost_functiontypes/reference/macros.html b/doc/html/boost_functiontypes/reference/macros.html index ea3f1eb..a482bf0 100644 --- a/doc/html/boost_functiontypes/reference/macros.html +++ b/doc/html/boost_functiontypes/reference/macros.html @@ -1,10 +1,10 @@ - + Macros - - - + + + @@ -13,16 +13,16 @@ - - - + + +
    Boost C++ Libraries HomeLibrariesPeopleFAQLibrariesPeopleFAQ More

    -PrevUpHomeNext +PrevUpHomeNext
    -
    + -
    +

    BOOST_FT_MAX_ARITY @@ -65,7 +65,7 @@ to configure the library to work with a compiler and/or calling convention not covered by the auto-detection mechanism in boost/function_types/config/compiler.hpp.

    -
    +

    BOOST_FT_CC_NAMES @@ -90,8 +90,7 @@ The following names are predefined by the library and must not occur in the definition of BOOST_FT_CC_NAMES:

    -
    -#define BOOST_FT_BUILTIN_CC_NAMES \
    +
    #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 ) ))\
    @@ -104,7 +103,7 @@
     // explicitly prior to MSVC 8).
     

    -
    +

    BOOST_FT_CC_* @@ -118,34 +117,33 @@ The macro expands to a list of restrictions, separated by the | character. Possible items are:

    -
      -
    • - callable_builtin -
    • -
    • - member -
    • -
    • - non_member -
    • -
    • - variadic -
    • -
    • - non_variadic -
    • +
        +
      • + callable_builtin +
      • +
      • + member +
      • +
      • + non_member +
      • +
      • + variadic +
      • +
      • + non_variadic +

      If no such macro is defined for a particular calling convention, it is disabled. Example:

      -
      -#define BOOST_FT_CC_STDCALL non_variadic|callable_builtin
      +
      #define BOOST_FT_CC_STDCALL non_variadic|callable_builtin
       // enables stdcall calling convention for all non-variadic, 
       // callable, builtin types
       
    -
    +

    BOOST_FT_COMMON_X86_CCs @@ -154,13 +152,12 @@ Defining this macro causes the following macros to be defined, if not defined already:

    -
    -#define BOOST_FT_CC_CDECL BOOST_FT_COMMON_X86_CCs
    +
    #define BOOST_FT_CC_CDECL BOOST_FT_COMMON_X86_CCs
     #define BOOST_FT_CC_STDCALL non_variadic|BOOST_FT_COMMON_X86_CCs
     #define BOOST_FT_CC_FASTCALL non_variadic|BOOST_FT_COMMON_X86_CCs
     

    -
    +

    BOOST_FT_SYNTAX @@ -173,12 +170,11 @@

    The default definition is as follows:

    -
    -#define BOOST_FT_SYNTAX(result,lparen,cc_spec,type_mod,name,rparen) \
    +
    #define BOOST_FT_SYNTAX(result,lparen,cc_spec,type_mod,name,rparen) \
               result() lparen() cc_spec() type_mod() name() rparen()
     

    -
    +

    BOOST_FT_NULLARY_PARAM @@ -188,7 +184,7 @@ parameter for nullary function types, empty by default.

    -
    +

    BOOST_FT_NO_CV_FUNC_SUPPORT @@ -205,7 +201,7 @@ The following macros are useful for testing when changing the source code of the library.

    -
    +

    BOOST_FT_PREPROCESSING_MODE @@ -215,7 +211,7 @@ than loading already-preprocessed header files) if defined.

    -
    +

    BOOST_FT_CC_PREPROCESSING @@ -233,7 +229,7 @@

    -

    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost_functiontypes/reference/synthesis.html b/doc/html/boost_functiontypes/reference/synthesis.html index fdf12ab..fcb4835 100644 --- a/doc/html/boost_functiontypes/reference/synthesis.html +++ b/doc/html/boost_functiontypes/reference/synthesis.html @@ -1,10 +1,10 @@ - + Class templates for type synthesis - - - + + + @@ -13,16 +13,16 @@ - - - + + +
    Boost C++ Libraries HomeLibrariesPeopleFAQLibrariesPeopleFAQ More

    -PrevUpHomeNext +PrevUpHomeNext
    -
    +
    -
    +
    -
    -template<typename Types, typename Tag = null_tag> 
    +
    template<typename Types, typename Tag = null_tag> 
     struct function_type;
     

    Header

    -
    -#include <boost/function_types/function_type.hpp>
    +
    #include <boost/function_types/function_type.hpp>
     

    Types

    - Component types in form of an MPL - - Forward - Sequence or another callable, builtin type -

    + Component types in form of an MPL + - Forward + Sequence or another callable, builtin type +

    Tag

    - Further properties -

    + Further properties +

    function_type<Types,Tag>::type

    - Synthesized type -

    + Synthesized type +

    @@ -79,38 +77,36 @@ access the type member will result in a compile error.

    -
    +
    -
    -template<typename Types, typename Tag = null_tag> 
    +
    template<typename Types, typename Tag = null_tag> 
     struct function_pointer;
     

    Header

    -
    -#include <boost/function_types/function_pointer.hpp>
    +
    #include <boost/function_types/function_pointer.hpp>
     

    Types

    - Component types in form of an MPL - - Forward - Sequence or another callable, builtin type -

    + Component types in form of an MPL + - Forward + Sequence or another callable, builtin type +

    Tag

    - Further properties -

    + Further properties +

    function_pointer<Types,Tag>::type

    - Synthesized type -

    + Synthesized type +

    @@ -121,38 +117,36 @@ access the type member will result in a compile error.

    -
    +
    -
    -template<typename Types, typename Tag = null_tag> 
    +
    template<typename Types, typename Tag = null_tag> 
     struct function_reference;
     

    Header

    -
    -#include <boost/function_types/function_reference.hpp>
    +
    #include <boost/function_types/function_reference.hpp>
     

    Types

    - Component types in form of an MPL - - Forward - Sequence or another callable, builtin type -

    + Component types in form of an MPL + - Forward + Sequence or another callable, builtin type +

    Tag

    - Further properties -

    + Further properties +

    function_reference<Types,Tag>::type

    - Synthesized type -

    + Synthesized type +

    @@ -163,38 +157,36 @@ access the type member will result in a compile error.

    -
    +
    -
    -template<typename Types, typename Tag = null_tag> 
    +
    template<typename Types, typename Tag = null_tag> 
     struct member_function_pointer;
     

    Header

    -
    -#include <boost/function_types/member_function_pointer.hpp>
    +
    #include <boost/function_types/member_function_pointer.hpp>
     

    Types

    - Component types in form of an MPL - - Forward - Sequence or another callable, builtin type -

    + Component types in form of an MPL + - Forward + Sequence or another callable, builtin type +

    Tag

    - Further properties -

    + Further properties +

    member_function_pointer<Types,Tag>::type

    - Synthesized type -

    + Synthesized type +

    @@ -214,7 +206,7 @@

    -

    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost_functiontypes/reference/tag_types.html b/doc/html/boost_functiontypes/reference/tag_types.html index 847d74f..8f4eac2 100644 --- a/doc/html/boost_functiontypes/reference/tag_types.html +++ b/doc/html/boost_functiontypes/reference/tag_types.html @@ -1,10 +1,10 @@ - + Tag Types - - - + + + @@ -13,16 +13,16 @@ - - - + + +
    Boost C++ Libraries HomeLibrariesPeopleFAQLibrariesPeopleFAQ More

    -PrevUpHomeNext +PrevUpHomeNext
    -
    +
    @@ -52,145 +52,129 @@ null_tag
    tag
    -
    +
    -
    -typedef unspecified variadic;
    +
    typedef unspecified variadic;
     

    Header

    -
    -#include <boost/function_types/property_tags.hpp>
    +
    #include <boost/function_types/property_tags.hpp>
     

    States that a function type takes a variable number of arguments through an ellipsis parameter (such as printf).

    -
    +
    -
    -typedef unspecified non_variadic;
    +
    typedef unspecified non_variadic;
     

    Header

    -
    -#include <boost/function_types/property_tags.hpp>
    +
    #include <boost/function_types/property_tags.hpp>
     

    States that a function type does not have an ellipsis parameter.

    -
    +
    -
    -typedef unspecified default_cc;
    +
    typedef unspecified default_cc;
     

    Header

    -
    -#include <boost/function_types/property_tags.hpp>
    +
    #include <boost/function_types/property_tags.hpp>
     

    States that a function type encodes the default calling convention.

    -
    +
    -
    -typedef unspecified const_qualified;
    +
    typedef unspecified const_qualified;
     

    Header

    -
    -#include <boost/function_types/property_tags.hpp>
    +
    #include <boost/function_types/property_tags.hpp>
     

    States that a function type is const qualified.

    -
    +
    -
    -typedef unspecified non_const;
    +
    typedef unspecified non_const;
     

    Header

    -
    -#include <boost/function_types/property_tags.hpp>
    +
    #include <boost/function_types/property_tags.hpp>
     

    States that a function type is not const qualified.

    -
    +
    -
    -typedef unspecified volatile_qualified;
    +
    typedef unspecified volatile_qualified;
     

    Header

    -
    -#include <boost/function_types/property_tags.hpp>
    +
    #include <boost/function_types/property_tags.hpp>
     

    States that a function type is volatile qualified.

    -
    +
    -
    -typedef unspecified non_volatile;
    +
    typedef unspecified non_volatile;
     

    Header

    -
    -#include <boost/function_types/property_tags.hpp>
    +
    #include <boost/function_types/property_tags.hpp>
     

    States that a function type is not volatile qualified.

    -
    +
    -
    -typedef unspecified non_cv;
    +
    typedef unspecified non_cv;
     

    Header

    -
    -#include <boost/function_types/property_tags.hpp>
    +
    #include <boost/function_types/property_tags.hpp>
     

    States that a function type is neither const nor volatile qualified. Equivalent @@ -198,19 +182,17 @@ but involves fewer template instantiations when evaluated.

    -
    +
    -
    -typedef unspecified const_non_volatile;
    +
    typedef unspecified const_non_volatile;
     

    Header

    -
    -#include <boost/function_types/property_tags.hpp>
    +
    #include <boost/function_types/property_tags.hpp>
     

    States that a function type is const but not volatile qualified. Equivalent @@ -218,19 +200,17 @@ but involves fewer template instantiations when evaluated.

    -
    +
    -
    -typedef unspecified volatile_non_const;
    +
    typedef unspecified volatile_non_const;
     

    Header

    -
    -#include <boost/function_types/property_tags.hpp>
    +
    #include <boost/function_types/property_tags.hpp>
     

    States that a function type is volatile but not const qualified. Equivalent @@ -238,19 +218,17 @@ but involves fewer template instantiations when evaluated.

    -
    +
    -
    -typedef unspecified cv_qualified;
    +
    typedef unspecified cv_qualified;
     

    Header

    -
    -#include <boost/function_types/property_tags.hpp>
    +
    #include <boost/function_types/property_tags.hpp>
     

    States that a function type is both const and volatile qualified. Equivalent @@ -258,50 +236,46 @@ but involves fewer template instantiations when evaluated.

    -
    +
    -
    -typedef unspecified null_tag;
    +
    typedef unspecified null_tag;
     

    Header

    -
    -#include <boost/function_types/property_tags.hpp>
    +
    #include <boost/function_types/property_tags.hpp>
     

    States nothing.

    -
    +
    -
    -template<class Tag1, class Tag2, 
    +
    template<class Tag1, class Tag2, 
         class Tag3 = null_tag, class Tag4 = null_tag>
     struct tag;
     

    Header

    -
    -#include <boost/function_types/property_tags.hpp>
    +
    #include <boost/function_types/property_tags.hpp>
     

    TagN

    - Property tag -

    + Property tag +

    tag<Tag1,Tag2...>

    - Compound property tag -

    + Compound property tag +

    @@ -312,7 +286,7 @@

    -

    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost_functiontypes/use_cases.html b/doc/html/boost_functiontypes/use_cases.html index 8cee449..cb08d42 100644 --- a/doc/html/boost_functiontypes/use_cases.html +++ b/doc/html/boost_functiontypes/use_cases.html @@ -1,11 +1,11 @@ - + Use Cases - - - - + + + + @@ -13,16 +13,16 @@ - - - + + +
    Boost C++ Libraries HomeLibrariesPeopleFAQLibrariesPeopleFAQ More

    -PrevUpHomeNext +PrevUpHomeNext
    -
    +
    @@ -36,8 +36,7 @@ a calling convention with each function's type to allow calls across language or (sub-)system boundaries.

    -
    -template<typename R>
    +
    template<typename R>
     void accept_function(R(* func)());
     
     template<typename R>
    @@ -90,8 +89,7 @@
           Using Boost.FunctionTypes it is possible to write a single function template
           instead:
         

    -
    -template<typename F>
    +
    template<typename F>
     void accept_function(F f)
     {
       // ... use Boost.FunctionTypes to analyse F
    @@ -110,8 +108,7 @@
           in. The code below shows three examples for choosing the float(float)
           overload of std::abs.
         

    -
    -float (*ptr_absf)(float) = & std::abs;
    +
    float (*ptr_absf)(float) = & std::abs;
     
     
     void foo(float(*func)(float));
    @@ -129,8 +126,7 @@
           selection and instantiation of function templates. Given an overloaded function
           template
         

    -
    -template<typename R, typename T0>
    +
    template<typename R, typename T0>
     R overloaded(T0);
     
     template<typename R, typename T0, typename T1>
    @@ -143,8 +139,7 @@
           we can pick any of the three overloads and instantiate the template with template
           arguments from a type sequence in a single expression:
         

    -
    -static_cast<function_pointer<Seq>::type>(& overloaded)
    +
    static_cast<function_pointer<Seq>::type>(& overloaded)
     

    This technique can be occasionally more flexible than template argument deduction @@ -165,7 +160,7 @@

    -

    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/index.html b/doc/html/index.html index c95f3f7..d64a89b 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -1,33 +1,33 @@ - -Chapter 1. Boost.FunctionTypes 2.5 - - - + +Chapter 1. Boost.FunctionTypes 2.5 + + + - - - + + +
    Boost C++ Libraries HomeLibrariesPeopleFAQLibrariesPeopleFAQ More

    -
    Next
    -
    +
    Next
    +

    -Chapter 1. Boost.FunctionTypes 2.5

    +Chapter 1. Boost.FunctionTypes 2.5

    Tobias Schwinger

    -
    +
    -

    +

    Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

    @@ -46,10 +46,10 @@
    - +

    Last revised: March 14, 2008 at 18:36:46 +0000

    Last revised: , at


    -
    Next
    +
    Next
    From 1f51d9ba294f131f20fe03d5fb22c75406633ba7 Mon Sep 17 00:00:00 2001 From: Daniel James Date: Sat, 2 Apr 2011 14:41:07 +0000 Subject: [PATCH 34/34] Function types: rebuild documentation. [SVN r70856] --- .../boost_functiontypes/about_tag_types.html | 7 +- .../boost_functiontypes/acknowledgements.html | 7 +- .../boost_functiontypes/introduction.html | 7 +- doc/html/boost_functiontypes/rationale.html | 23 +++--- doc/html/boost_functiontypes/reference.html | 19 ++--- .../reference/classification.html | 57 +++++-------- .../reference/decomposition.html | 31 +++---- .../boost_functiontypes/reference/macros.html | 61 +++++--------- .../reference/synthesis.html | 31 +++---- .../reference/tag_types.html | 81 +++++++------------ doc/html/boost_functiontypes/use_cases.html | 7 +- doc/html/index.html | 21 ++--- 12 files changed, 146 insertions(+), 206 deletions(-) diff --git a/doc/html/boost_functiontypes/about_tag_types.html b/doc/html/boost_functiontypes/about_tag_types.html index 7b9e5ec..9000b58 100644 --- a/doc/html/boost_functiontypes/about_tag_types.html +++ b/doc/html/boost_functiontypes/about_tag_types.html @@ -3,7 +3,7 @@ About Tag Types - + @@ -24,7 +24,7 @@

    Boost.FunctionTypes uses tag types to encode properties that are not types @@ -80,7 +80,8 @@

    -

    Thanks go to the following people for supporting the development of this library @@ -79,7 +79,8 @@

    -

    Boost.FunctionTypes provides functionality to classify, decompose and synthesize @@ -77,7 +77,8 @@

    -

    - + Error handling rationale

    @@ -42,7 +42,7 @@ can be spotted easily.

    - + Why MPL Sequences?

    @@ -55,7 +55,7 @@ so another reason is interoperability.

    - + Pointer to member object types

    @@ -64,7 +64,7 @@ functionals.

    - + The ClassTransform template parameter

    @@ -81,7 +81,7 @@ all parameters uniformly.

    - + Why tag types?

    @@ -100,7 +100,7 @@ with older compilers.

    - + Is it safe to have the synthesis templates take a callable builtin type or an MPL sequence as the first template argument? @@ -115,7 +115,7 @@ type a sequence have been included, which can easily violate the ODR.

    - + Why does the hidden this parameter count for the function arity of member functions? @@ -126,7 +126,7 @@
    mpl::size< parameter_types<T> >::value == function_arity<T>::value
     

    - + Why ignore top-level cv-qualifiers on pointers?

    @@ -137,7 +137,8 @@
    -
    -
    template<typename T, typename Tag = null_tag>
     struct is_function;
    @@ -88,8 +79,7 @@
     
    template<typename T, typename Tag = null_tag>
     struct is_function_pointer;
    @@ -129,8 +119,7 @@
     
    template<typename T, typename Tag = null_tag>
     struct is_function_reference;
    @@ -170,8 +159,7 @@
     
    template<typename T, typename Tag = null_tag>
     struct is_member_pointer;
    @@ -211,8 +199,7 @@
     
    template<typename T>
     struct is_member_object_pointer;
    @@ -247,8 +234,7 @@
     
    template<typename T, typename Tag = null_tag>
     struct is_member_function_pointer;
    @@ -288,8 +274,7 @@
     
    template<typename T, typename Tag = null_tag>
     struct is_callable_builtin;
    @@ -329,8 +314,7 @@
     
    template<typename T, typename Tag = null_tag>
     struct is_nonmember_callable_builtin;
    @@ -372,7 +356,8 @@
     
    -
    template<typename F>
     struct result_type;
    @@ -73,8 +68,7 @@
     
    template<typename F, class ClassTransform = add_reference<_> >
     struct parameter_types;
    @@ -117,8 +111,7 @@
     
    template<typename F>
     struct function_arity;
    @@ -160,8 +153,7 @@
     
    template<typename T, class ClassTransform = add_reference<_> >
     struct components;
    @@ -211,7 +203,8 @@
     
    -

    Expands to a numeric value that describes the maximum function arity supported @@ -67,8 +57,7 @@

    Expands to a sequence @@ -105,8 +94,7 @@

    Enables a specific calling convention. * denotes the macro suffix, as defined @@ -145,8 +133,7 @@

    Defining this macro causes the following macros to be defined, if not defined @@ -159,8 +146,7 @@

    This macro allows to change the syntax of callable builtin types. It is @@ -176,8 +162,7 @@

    Set to void for compilers that insist on a void @@ -186,8 +171,7 @@

    Disables support for cv-qualified function types. Cv-qualified function @@ -203,8 +187,7 @@

    Makes the compiler preprocess as much as possible of the library code (rather @@ -213,8 +196,7 @@

    Makes the compiler preprocess the loop over possible names for custom calling @@ -229,7 +211,8 @@

    -
    template<typename Types, typename Tag = null_tag> 
     struct function_type;
    @@ -79,8 +74,7 @@
     
    template<typename Types, typename Tag = null_tag> 
     struct function_pointer;
    @@ -119,8 +113,7 @@
     
    template<typename Types, typename Tag = null_tag> 
     struct function_reference;
    @@ -159,8 +152,7 @@
     
    template<typename Types, typename Tag = null_tag> 
     struct member_function_pointer;
    @@ -206,7 +198,8 @@
     
    -
    typedef unspecified variadic;
     
    @@ -71,8 +59,7 @@
    typedef unspecified non_variadic;
     
    @@ -87,8 +74,7 @@
    typedef unspecified default_cc;
     
    @@ -103,8 +89,7 @@
    typedef unspecified const_qualified;
     
    @@ -119,8 +104,7 @@
    typedef unspecified non_const;
     
    @@ -135,8 +119,7 @@
    typedef unspecified volatile_qualified;
     
    @@ -151,8 +134,7 @@
    typedef unspecified non_volatile;
     
    @@ -167,7 +149,7 @@
    typedef unspecified non_cv;
     
    @@ -184,8 +166,7 @@
    typedef unspecified const_non_volatile;
     
    @@ -202,8 +183,7 @@
    typedef unspecified volatile_non_const;
     
    @@ -220,8 +200,7 @@
    typedef unspecified cv_qualified;
     
    @@ -238,8 +217,7 @@
    typedef unspecified null_tag;
     
    @@ -254,7 +232,7 @@

    - tag +tag

    template<class Tag1, class Tag2, 
         class Tag3 = null_tag, class Tag4 = null_tag>
    @@ -286,7 +264,8 @@
     
    -

    Generic libraries that accept callable arguments are common in C++. Accepting @@ -160,7 +160,8 @@

    -