From 3bafb64003852ce9234a98d9efa9e9c1eb42193c Mon Sep 17 00:00:00 2001 From: Joel de Guzman Date: Wed, 24 Oct 2007 02:30:52 +0000 Subject: [PATCH 01/31] Fusion 2.1 one more time with care [SVN r40389] --- example/interpreter.hpp | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/example/interpreter.hpp b/example/interpreter.hpp index 20e0c2f..9e75bf7 100644 --- a/example/interpreter.hpp +++ b/example/interpreter.hpp @@ -14,11 +14,11 @@ // ========================== // // When a function is registered, an 'invoker' template is instantiated with -// the function's type. The 'invoker' fetches a value from the 'token_parser' +// the function's type. The 'invoker' fetches a value from the 'token_parser' // for each parameter of the function into a tuple and finally invokes the the // function with these values as arguments. The invoker's entrypoint, which // is a function of the callable builtin that describes the function to call and -// a reference to the 'token_parser', is partially bound to the registered +// a reference to the 'token_parser', is partially bound to the registered // function and put into a map so it can be found by name during parsing. #include @@ -36,9 +36,9 @@ #include #include -#include -#include -#include +#include +#include +#include #include #include @@ -58,7 +58,7 @@ namespace example class interpreter { - class token_parser; + class token_parser; typedef boost::function invoker_function; typedef std::map dictionary; @@ -66,7 +66,7 @@ namespace example public: // Registers a function with the interpreter. template - typename boost::enable_if< ft::is_nonmember_callable_builtin + typename boost::enable_if< ft::is_nonmember_callable_builtin >::type register_function(std::string const & name, Function f); // Parse input for functions to call. @@ -76,13 +76,13 @@ namespace example template< typename Function , class From = typename mpl::begin< ft::parameter_types >::type , class To = typename mpl::end< ft::parameter_types >::type - > + > struct invoker; }; class interpreter::token_parser { - typedef boost::token_iterator_generator< + typedef boost::token_iterator_generator< boost::char_separator >::type token_iterator; token_iterator itr_at, itr_to; @@ -101,7 +101,7 @@ namespace example // Returns a token of given type. // We just apply boost::lexical_cast to whitespace separated string tokens // for simplicity. - template + template typename remove_cv_ref::type get() { if (! this->has_more_tokens()) @@ -111,8 +111,8 @@ namespace example { typedef typename remove_cv_ref::type result_type; result_type result = boost::lexical_cast - ::type>(*this->itr_at); - ++this->itr_at; + ::type>(*this->itr_at); + ++this->itr_at; return result; } @@ -129,7 +129,7 @@ namespace example { // add an argument to a Fusion cons-list for each parameter type template - static inline + static inline void apply(Function func, token_parser & parser, Args const & args) { typedef typename mpl::deref::type arg_type; @@ -144,7 +144,7 @@ namespace example { // the argument list is complete, now call the function template - static inline + static inline void apply(Function func, token_parser &, Args const & args) { fusion::invoke(func,args); @@ -156,7 +156,7 @@ namespace example interpreter::register_function(std::string const & name, Function f) { // instantiate and store the invoker by name - this->map_invokers[name] = boost::bind( + this->map_invokers[name] = boost::bind( & invoker::template apply, f,_1,fusion::nil() ); } @@ -177,9 +177,9 @@ namespace example // look up function dictionary::const_iterator entry = map_invokers.find( func_name ); if (entry == map_invokers.end()) - throw std::runtime_error("unknown function: " + func_name); - - // call the invoker which controls argument parsing + throw std::runtime_error("unknown function: " + func_name); + + // call the invoker which controls argument parsing entry->second(parser); } } From 01fa810682b759c0514c65a01d51c5599ea7f7c6 Mon Sep 17 00:00:00 2001 From: Tobias Schwinger Date: Mon, 5 Nov 2007 17:15:04 +0000 Subject: [PATCH 02/31] - nonstandard calling conventions disabled by default - automatic fallback configuration [SVN r40794] --- .../boost/function_types/config/compiler.hpp | 100 ++++++++++-------- .../detail/pp_cc_loop/master.hpp | 33 ++++++ .../detail/pp_cc_loop/preprocessed.hpp | 21 ++++ 3 files changed, 109 insertions(+), 45 deletions(-) diff --git a/include/boost/function_types/config/compiler.hpp b/include/boost/function_types/config/compiler.hpp index b9c020f..151c856 100644 --- a/include/boost/function_types/config/compiler.hpp +++ b/include/boost/function_types/config/compiler.hpp @@ -18,33 +18,36 @@ # error "unsupported compiler version" # endif - // enable clrcall calling covention (call to .NET managed code) when - // compiling with /clr -# if BOOST_MSVC >= 1400 && defined(__cplusplus_cli) -# ifndef BOOST_FT_CC_CLRCALL -# define BOOST_FT_CC_CLRCALL callable_builtin -# endif -# endif +# ifdef BOOST_FT_AUTODETECT_CALLING_CONVENTIONS - // Intel x86 architecture specific calling conventions -# ifdef _M_IX86 -# define BOOST_FT_COMMON_X86_CCs callable_builtin -# if BOOST_MSVC < 1400 - // version 7.1 is missing a keyword to specify the thiscall cc ... -# ifndef BOOST_FT_CC_IMPLICIT_THISCALL -# define BOOST_FT_CC_IMPLICIT_THISCALL non_variadic|member|callable_builtin -# ifndef BOOST_FT_CONFIG_OK -# pragma message("INFO| /Gd /Gr /Gz will compiler options will cause") -# pragma message("INFO| a compile error.") -# pragma message("INFO| Reconfigure Boost.FunctionTypes in this case.") -# pragma message("INFO| This message can be suppressed by defining") -# pragma message("INFO| BOOST_FT_CONFIG_OK.") + // enable clrcall calling covention (call to .NET managed code) when + // compiling with /clr +# if BOOST_MSVC >= 1400 && defined(__cplusplus_cli) +# ifndef BOOST_FT_CC_CLRCALL +# define BOOST_FT_CC_CLRCALL callable_builtin # endif -# endif -# else - // ...introduced in version 8 -# ifndef BOOST_FT_CC_THISCALL -# define BOOST_FT_CC_THISCALL non_variadic|member|callable_builtin +# endif + + // Intel x86 architecture specific calling conventions +# ifdef _M_IX86 +# define BOOST_FT_COMMON_X86_CCs callable_builtin +# if BOOST_MSVC < 1400 + // version 7.1 is missing a keyword to specify the thiscall cc ... +# ifndef BOOST_FT_CC_IMPLICIT_THISCALL +# define BOOST_FT_CC_IMPLICIT_THISCALL non_variadic|member|callable_builtin +# ifndef BOOST_FT_CONFIG_OK +# pragma message("INFO| /Gd /Gr /Gz will compiler options will cause") +# pragma message("INFO| a compile error.") +# pragma message("INFO| Reconfigure Boost.FunctionTypes in this case.") +# pragma message("INFO| This message can be suppressed by defining") +# pragma message("INFO| BOOST_FT_CONFIG_OK.") +# endif +# endif +# else + // ...introduced in version 8 +# ifndef BOOST_FT_CC_THISCALL +# define BOOST_FT_CC_THISCALL non_variadic|member|callable_builtin +# endif # endif # endif # endif @@ -55,32 +58,37 @@ # error "unsupported compiler version" # endif -# if defined(__i386__) -# // see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20439 -# // see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29328 -# if BOOST_WORKAROUND(__GNUC__,BOOST_TESTED_AT(4)) -# ifndef BOOST_FT_CC_IMPLICIT -# define BOOST_FT_CC_IMPLICIT member|callable_builtin +# ifdef BOOST_FT_AUTODETECT_CALLING_CONVENTIONS + +# if defined(__i386__) +# // see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20439 +# // see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29328 +# if BOOST_WORKAROUND(__GNUC__,BOOST_TESTED_AT(4)) +# ifndef BOOST_FT_CC_IMPLICIT +# define BOOST_FT_CC_IMPLICIT member|callable_builtin +# endif +# define BOOST_FT_COMMON_X86_CCs non_member|callable_builtin +# else +# define BOOST_FT_COMMON_X86_CCs callable_builtin # endif -# define BOOST_FT_COMMON_X86_CCs non_member|callable_builtin # else -# define BOOST_FT_COMMON_X86_CCs callable_builtin -# endif -# else -# ifndef BOOST_FT_CC_IMPLICIT -# define BOOST_FT_CC_IMPLICIT callable_builtin +# ifndef BOOST_FT_CC_IMPLICIT +# define BOOST_FT_CC_IMPLICIT callable_builtin +# endif # endif # endif -# // TODO: straighten out this hack -# ifndef __cdecl -# define __cdecl __attribute__((__cdecl__)) +# if (defined(BOOST_FT_CC_CDECL) || defined(BOOST_FT_COMMON_X86_CCs)) \ + && !defined(__cdecl) +# define __cdecl __attribute__((__cdecl__)) # endif -# ifndef __stdcall -# define __stdcall __attribute__((__stdcall__)) +# if (defined(BOOST_FT_CC_STDCALL) || defined(BOOST_FT_COMMON_X86_CCs)) \ + && !defined(__stdcall) +# define __stdcall __attribute__((__stdcall__)) # endif -# ifndef __fastcall -# define __fastcall __attribute__((__fastcall__)) +# if (defined(BOOST_FT_CC_FASTCALL) || defined(BOOST_FT_COMMON_X86_CCs)) \ + && !defined(__fastcall) +# define __fastcall __attribute__((__fastcall__)) # endif #elif defined(__BORLANDC__) @@ -91,7 +99,9 @@ # pragma message("WARNING: library untested with this compiler version") # endif -# define BOOST_FT_COMMON_X86_CCs callable_builtin +# ifdef BOOST_FT_AUTODETECT_CALLING_CONVENTIONS +# define BOOST_FT_COMMON_X86_CCs callable_builtin +# endif // syntactic specialities of cc specifier # define BOOST_FT_SYNTAX(result,lparen,cc_spec,type_mod,name,rparen) \ 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 49ffded..5a6d6c4 100644 --- a/include/boost/function_types/detail/pp_cc_loop/master.hpp +++ b/include/boost/function_types/detail/pp_cc_loop/master.hpp @@ -37,6 +37,37 @@ # define BOOST_PP_ITERATION_LIMITS \ (0,BOOST_PP_SEQ_SIZE(BOOST_FT_CC_NAMES_SEQ)-1) # include BOOST_PP_ITERATE() +# if !defined(BOOST_FT_config_valid) && BOOST_FT_CC_PREPROCESSING +# define BOOST_FT_cc_id 1 +# define BOOST_FT_cc_name implicit_cc +# define BOOST_FT_cc BOOST_PP_EMPTY +# define BOOST_FT_cond callable_builtin +# include BOOST_PP_EXPAND ( ) +# undef BOOST_FT_cond +# undef BOOST_FT_cc_name +# undef BOOST_FT_cc +# undef BOOST_FT_cc_id +# elif !defined(BOOST_FT_config_valid) // and generating preprocessed file +BOOST_PP_EXPAND(#) ifndef BOOST_FT_config_valid +BOOST_PP_EXPAND(#) define BOOST_FT_cc_id 1 +BOOST_PP_EXPAND(#) define BOOST_FT_cc_name implicit_cc +BOOST_PP_EXPAND(#) define BOOST_FT_cc BOOST_PP_EMPTY +BOOST_PP_EXPAND(#) define BOOST_FT_cond callable_builtin +#define _() +BOOST_PP_EXPAND(#) include BOOST_PP_EXPAND _()( ) +#undef _ +BOOST_PP_EXPAND(#) undef BOOST_FT_cond +BOOST_PP_EXPAND(#) undef BOOST_FT_cc_name +BOOST_PP_EXPAND(#) undef BOOST_FT_cc +BOOST_PP_EXPAND(#) undef BOOST_FT_cc_id +BOOST_PP_EXPAND(#) else +BOOST_PP_EXPAND(#) undef BOOST_FT_config_valid +BOOST_PP_EXPAND(#) endif + +# else +# undef BOOST_FT_config_valid +# endif + # include # include @@ -53,6 +84,7 @@ # define BOOST_FT_cond BOOST_PP_CAT(BOOST_FT_CC_,BOOST_FT_cc_pp_name) # if BOOST_FT_cond +# define BOOST_FT_config_valid 1 # include BOOST_PP_EXPAND() # endif @@ -87,6 +119,7 @@ BOOST_PP_EXPAND(#) define BOOST_FT_cond BOOST_FT_cc_cond_v # undef BOOST_FT_cc_inf BOOST_PP_EXPAND(#) if BOOST_FT_cond +BOOST_PP_EXPAND(#) define BOOST_FT_config_valid 1 #define _() BOOST_PP_EXPAND(#) include BOOST_PP_EXPAND _()() #undef _ 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 598de8a..87c6031 100644 --- a/include/boost/function_types/detail/pp_cc_loop/preprocessed.hpp +++ b/include/boost/function_types/detail/pp_cc_loop/preprocessed.hpp @@ -14,6 +14,7 @@ # define BOOST_FT_cc BOOST_PP_EMPTY # define BOOST_FT_cond BOOST_FT_CC_IMPLICIT # if BOOST_FT_cond +# define BOOST_FT_config_valid 1 # include BOOST_PP_EXPAND ( ) # endif # undef BOOST_FT_cond @@ -25,6 +26,7 @@ # define BOOST_FT_cc BOOST_PP_IDENTITY(__cdecl ) # define BOOST_FT_cond BOOST_FT_CC_CDECL # if BOOST_FT_cond +# define BOOST_FT_config_valid 1 # include BOOST_PP_EXPAND ( ) # endif # undef BOOST_FT_cond @@ -36,6 +38,7 @@ # define BOOST_FT_cc BOOST_PP_IDENTITY(__stdcall ) # define BOOST_FT_cond BOOST_FT_CC_STDCALL # if BOOST_FT_cond +# define BOOST_FT_config_valid 1 # include BOOST_PP_EXPAND ( ) # endif # undef BOOST_FT_cond @@ -47,6 +50,7 @@ # define BOOST_FT_cc BOOST_PP_IDENTITY(pascal ) # define BOOST_FT_cond BOOST_FT_CC_PASCAL # if BOOST_FT_cond +# define BOOST_FT_config_valid 1 # include BOOST_PP_EXPAND ( ) # endif # undef BOOST_FT_cond @@ -58,6 +62,7 @@ # define BOOST_FT_cc BOOST_PP_IDENTITY(__fastcall) # define BOOST_FT_cond BOOST_FT_CC_FASTCALL # if BOOST_FT_cond +# define BOOST_FT_config_valid 1 # include BOOST_PP_EXPAND ( ) # endif # undef BOOST_FT_cond @@ -69,6 +74,7 @@ # define BOOST_FT_cc BOOST_PP_IDENTITY(__clrcall ) # define BOOST_FT_cond BOOST_FT_CC_CLRCALL # if BOOST_FT_cond +# define BOOST_FT_config_valid 1 # include BOOST_PP_EXPAND ( ) # endif # undef BOOST_FT_cond @@ -80,6 +86,7 @@ # define BOOST_FT_cc BOOST_PP_IDENTITY(__thiscall) # define BOOST_FT_cond BOOST_FT_CC_THISCALL # if BOOST_FT_cond +# define BOOST_FT_config_valid 1 # include BOOST_PP_EXPAND ( ) # endif # undef BOOST_FT_cond @@ -91,9 +98,23 @@ # define BOOST_FT_cc BOOST_PP_EMPTY # define BOOST_FT_cond BOOST_FT_CC_IMPLICIT_THISCALL # if BOOST_FT_cond +# define BOOST_FT_config_valid 1 # include BOOST_PP_EXPAND ( ) # endif # undef BOOST_FT_cond # undef BOOST_FT_cc_name # undef BOOST_FT_cc # undef BOOST_FT_cc_id +# ifndef BOOST_FT_config_valid +# define BOOST_FT_cc_id 1 +# define BOOST_FT_cc_name implicit_cc +# define BOOST_FT_cc BOOST_PP_EMPTY +# define BOOST_FT_cond 0x00000001 +# include BOOST_PP_EXPAND ( ) +# undef BOOST_FT_cond +# undef BOOST_FT_cc_name +# undef BOOST_FT_cc +# undef BOOST_FT_cc_id +# else +# undef BOOST_FT_config_valid +# endif From 0e8e53a27f6a223784dc0e01e3467080ca925427 Mon Sep 17 00:00:00 2001 From: Tobias Schwinger Date: Mon, 5 Nov 2007 17:16:30 +0000 Subject: [PATCH 03/31] removes unportable 'chdir' [SVN r40795] --- build/Jamfile | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/build/Jamfile b/build/Jamfile index 19f1c60..ce5fb17 100644 --- a/build/Jamfile +++ b/build/Jamfile @@ -13,16 +13,18 @@ rule wave actions wave { - chdir $(BOOST_ROOT)/libs/function_types/build $(BOOST_ROOT)/dist/bin/wave -S$(BOOST_ROOT) $(>) -o $(<) } make $(BOOST_ROOT)/libs/function_types/build/timestamps/arity_loops - : preprocess_arity_loops.cpp : wave ; + : preprocess_arity_loops.cpp : wave + ; make $(BOOST_ROOT)/libs/function_types/build/timestamps/encoding - : preprocess_encoding.cpp : wave ; + : preprocess_encoding.cpp : wave + ; make $(BOOST_ROOT)/libs/function_types/build/timestamps/cc_names - : preprocess_cc_names.cpp : wave ; + : preprocess_cc_names.cpp : wave + ; From f77db2de77c53e725e14eb3e99625f657343f858 Mon Sep 17 00:00:00 2001 From: Tobias Schwinger Date: Mon, 5 Nov 2007 17:17:57 +0000 Subject: [PATCH 04/31] just a touch [SVN r40796] --- build/timestamps/cc_names | 1 + 1 file changed, 1 insertion(+) diff --git a/build/timestamps/cc_names b/build/timestamps/cc_names index f91091c..e33ac14 100644 --- a/build/timestamps/cc_names +++ b/build/timestamps/cc_names @@ -1 +1,2 @@ timestamp file + From 20eb828129e4ef405540a67eba7838b2ea08eb22 Mon Sep 17 00:00:00 2001 From: Tobias Schwinger Date: Mon, 5 Nov 2007 17:19:23 +0000 Subject: [PATCH 05/31] adds test case for pointer to data member type [SVN r40797] --- test/decomposition/parameter_types.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/test/decomposition/parameter_types.cpp b/test/decomposition/parameter_types.cpp index 9255ca9..5feb1a8 100644 --- a/test/decomposition/parameter_types.cpp +++ b/test/decomposition/parameter_types.cpp @@ -24,7 +24,7 @@ typedef C (C::*mem_func_ptr)(C,int); typedef C (C::*c_mem_func_ptr)(C,C) const; typedef C (C::*v_mem_func_ptr)(C) volatile; typedef C (C::*cv_mem_func_ptr)() const volatile; - +typedef C C::*mem_ptr; BOOST_MPL_ASSERT(( mpl::equal< ft::parameter_types, mpl::vector > @@ -54,3 +54,6 @@ BOOST_MPL_ASSERT(( mpl::equal< ft::parameter_types, mpl::vector > )); +BOOST_MPL_ASSERT(( + mpl::equal< ft::parameter_types, mpl::vector > +)); From 60a0af0f668d35565dcae02ca90b173980294a68 Mon Sep 17 00:00:00 2001 From: Tobias Schwinger Date: Mon, 5 Nov 2007 17:20:44 +0000 Subject: [PATCH 06/31] - nonstandard calling conventions need to be enabled now - using #ifdef ... #error to detect whether test makes sense for a particular compiler [SVN r40798] --- test/custom_ccs/member_ccs.cpp | 6 ++++++ test/custom_ccs/member_ccs_exact.cpp | 6 ++++++ test/custom_ccs/nonmember_ccs.cpp | 6 ++++++ test/custom_ccs/nonmember_ccs_exact.cpp | 6 ++++++ 4 files changed, 24 insertions(+) diff --git a/test/custom_ccs/member_ccs.cpp b/test/custom_ccs/member_ccs.cpp index 28e0c1a..727b38b 100644 --- a/test/custom_ccs/member_ccs.cpp +++ b/test/custom_ccs/member_ccs.cpp @@ -6,11 +6,17 @@ //------------------------------------------------------------------------------ +#define BOOST_FT_AUTODETECT_CALLING_CONVENTIONS + #include #include #include #include +#ifndef BOOST_FT_CC_STDCALL +# error "test not supported with this compiler" +#endif + namespace ft = boost::function_types; namespace mpl = boost::mpl; diff --git a/test/custom_ccs/member_ccs_exact.cpp b/test/custom_ccs/member_ccs_exact.cpp index 381f69f..2decf14 100644 --- a/test/custom_ccs/member_ccs_exact.cpp +++ b/test/custom_ccs/member_ccs_exact.cpp @@ -6,11 +6,17 @@ //------------------------------------------------------------------------------ +#define BOOST_FT_AUTODETECT_CALLING_CONVENTIONS + #include #include #include #include +#ifndef BOOST_FT_CC_STDCALL +# error "test not supported with this compiler" +#endif + namespace ft = boost::function_types; namespace mpl = boost::mpl; diff --git a/test/custom_ccs/nonmember_ccs.cpp b/test/custom_ccs/nonmember_ccs.cpp index 18a73ff..98bf3d5 100644 --- a/test/custom_ccs/nonmember_ccs.cpp +++ b/test/custom_ccs/nonmember_ccs.cpp @@ -6,6 +6,8 @@ //------------------------------------------------------------------------------ +#define BOOST_FT_AUTODETECT_CALLING_CONVENTIONS + #include #include #include @@ -13,6 +15,10 @@ #include #include +#ifndef BOOST_FT_CC_STDCALL +# error "test not supported with this compiler" +#endif + namespace ft = boost::function_types; namespace mpl = boost::mpl; diff --git a/test/custom_ccs/nonmember_ccs_exact.cpp b/test/custom_ccs/nonmember_ccs_exact.cpp index 808ded3..31f73c0 100644 --- a/test/custom_ccs/nonmember_ccs_exact.cpp +++ b/test/custom_ccs/nonmember_ccs_exact.cpp @@ -6,6 +6,8 @@ //------------------------------------------------------------------------------ +#define BOOST_FT_AUTODETECT_CALLING_CONVENTIONS + #include #include #include @@ -13,6 +15,10 @@ #include #include +#ifndef BOOST_FT_CC_STDCALL +# error "test not supported with this compiler" +#endif + namespace ft = boost::function_types; namespace mpl = boost::mpl; From e8a144226c9cc5ad579b417b131156b2bf21c985 Mon Sep 17 00:00:00 2001 From: Tobias Schwinger Date: Mon, 5 Nov 2007 17:23:57 +0000 Subject: [PATCH 07/31] adds navigation icons [SVN r40799] --- doc/Jamfile | 2 -- 1 file changed, 2 deletions(-) diff --git a/doc/Jamfile b/doc/Jamfile index b286aea..5b46953 100644 --- a/doc/Jamfile +++ b/doc/Jamfile @@ -13,8 +13,6 @@ boostbook standalone : boost.root=../../../.. boost.libraries=../../../libraries.htm - nav.layout=none - navig.graphics=0 chunk.first.sections=1 chunk.section.depth=2 generate.section.toc.level=2 From 247a8a1aced619e1bff2aae52c7e77fa9144e373 Mon Sep 17 00:00:00 2001 From: Tobias Schwinger Date: Mon, 5 Nov 2007 17:24:58 +0000 Subject: [PATCH 08/31] integrates forgotten changes [SVN r40800] --- doc/function_types.qbk | 3 +++ 1 file changed, 3 insertions(+) diff --git a/doc/function_types.qbk b/doc/function_types.qbk index 2a6d83f..0f989ae 100644 --- a/doc/function_types.qbk +++ b/doc/function_types.qbk @@ -1086,6 +1086,7 @@ 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 @@ -1093,9 +1094,11 @@ library in one or the other way: * John Maddock * Paul Mensonides * Alexander Nasonov +* Richard Smith * Rob Stewart * Jonathan Turkanis * Pavel Vozenilek +* Steven Watanabe [endsect] From 55aa1ff276ac95fe463eaa3e6ff61291b27fd0b2 Mon Sep 17 00:00:00 2001 From: Tobias Schwinger Date: Mon, 5 Nov 2007 17:25:26 +0000 Subject: [PATCH 09/31] updates html [SVN r40801] --- .../boost_functiontypes/about_tag_types.html | 13 +- .../boost_functiontypes/acknowledgements.html | 22 +- .../boost_functiontypes/introduction.html | 13 +- doc/html/boost_functiontypes/rationale.html | 34 +-- doc/html/boost_functiontypes/reference.html | 13 +- .../reference/classification.html | 221 ++++++++++-------- .../reference/decomposition.html | 113 ++++----- .../boost_functiontypes/reference/macros.html | 13 +- .../reference/synthesis.html | 101 ++++---- .../reference/tag_types.html | 25 +- doc/html/boost_functiontypes/use_cases.html | 13 +- doc/html/index.html | 20 +- 12 files changed, 352 insertions(+), 249 deletions(-) diff --git a/doc/html/boost_functiontypes/about_tag_types.html b/doc/html/boost_functiontypes/about_tag_types.html index 80413e7..217b2ab 100644 --- a/doc/html/boost_functiontypes/about_tag_types.html +++ b/doc/html/boost_functiontypes/about_tag_types.html @@ -10,10 +10,17 @@ -
Boost C++ Libraries
+ + + + + + + +
Boost C++ LibrariesHomeLibrariesPeopleFAQMore

@@ -81,7 +88,7 @@
diff --git a/doc/html/boost_functiontypes/acknowledgements.html b/doc/html/boost_functiontypes/acknowledgements.html index 441ab7c..e8c7c26 100644 --- a/doc/html/boost_functiontypes/acknowledgements.html +++ b/doc/html/boost_functiontypes/acknowledgements.html @@ -9,10 +9,17 @@ -
Boost C++ Libraries
+ + + + + + + +
Boost C++ LibrariesHomeLibrariesPeopleFAQMore

@@ -25,6 +32,9 @@
  • David Abrahams
  • +
  • + Tom Brinkman +
  • Aleksey Gurtovoy
  • @@ -46,6 +56,9 @@
  • Alexander Nasonov
  • +
  • + Richard Smith +
  • Rob Stewart
  • @@ -55,6 +68,9 @@
  • Pavel Vozenilek
  • +
  • + Steven Watanabe +
  • @@ -63,7 +79,7 @@

    diff --git a/doc/html/boost_functiontypes/introduction.html b/doc/html/boost_functiontypes/introduction.html index 5047583..58151d4 100644 --- a/doc/html/boost_functiontypes/introduction.html +++ b/doc/html/boost_functiontypes/introduction.html @@ -10,10 +10,17 @@ -
    Boost C++ Libraries
    + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore

    @@ -81,7 +88,7 @@
    diff --git a/doc/html/boost_functiontypes/rationale.html b/doc/html/boost_functiontypes/rationale.html index fc44924..1b71df4 100644 --- a/doc/html/boost_functiontypes/rationale.html +++ b/doc/html/boost_functiontypes/rationale.html @@ -10,16 +10,23 @@ -
    Boost C++ Libraries
    + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore

    - + Error handling rationale

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

    - + Why MPL Sequences?

    @@ -47,19 +54,16 @@ so another reason is interoperability.

    - + Pointer to member object types

    Despite their syntax, pointer to member object types can be seen as dereferencing - functionals. A reference is not added to the - "result", however, to allow greater flexibility (once a reference - has been added there's no way to determine whether the referencee was a reference - already). + functionals.

    - + The ClassTransform template parameter

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

    - + Why tag types?

    @@ -95,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? @@ -110,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? @@ -124,7 +128,7 @@ function_arity">function_arity<T>::value

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

    @@ -139,7 +143,7 @@
    diff --git a/doc/html/boost_functiontypes/reference.html b/doc/html/boost_functiontypes/reference.html index 8529eba..f54c521 100644 --- a/doc/html/boost_functiontypes/reference.html +++ b/doc/html/boost_functiontypes/reference.html @@ -11,10 +11,17 @@ templates for type classification"> -
    Boost C++ Libraries
    + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore

    @@ -36,7 +43,7 @@
    diff --git a/doc/html/boost_functiontypes/reference/classification.html b/doc/html/boost_functiontypes/reference/classification.html index 4d0cb94..7ef1d9e 100644 --- a/doc/html/boost_functiontypes/reference/classification.html +++ b/doc/html/boost_functiontypes/reference/classification.html @@ -12,10 +12,17 @@ for type decomposition"> -
    Boost C++ Libraries
    + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore

    @@ -60,23 +67,23 @@

    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 +

    @@ -104,21 +111,23 @@

    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 +

    @@ -146,21 +155,23 @@

    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 +

    @@ -188,21 +199,23 @@

    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 +

    @@ -229,17 +242,19 @@

    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 +

    @@ -266,21 +281,23 @@

    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 +

    @@ -308,23 +325,23 @@

    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 +

    @@ -352,23 +369,23 @@

    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 +

    @@ -384,7 +401,7 @@


    diff --git a/doc/html/boost_functiontypes/reference/decomposition.html b/doc/html/boost_functiontypes/reference/decomposition.html index 00f9b32..91ebf50 100644 --- a/doc/html/boost_functiontypes/reference/decomposition.html +++ b/doc/html/boost_functiontypes/reference/decomposition.html @@ -13,10 +13,17 @@ for type synthesis"> -
    Boost C++ Libraries
    + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore

    @@ -52,13 +59,13 @@

    F
    -
    - Type to analyze -
    +

    + Type to analyze +

    result_type<F>::type
    -
    - Result type of F -
    +

    + Result type of F +

    @@ -88,23 +95,23 @@

    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 +

    @@ -134,19 +141,19 @@

    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 +

    @@ -179,27 +186,27 @@

    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 +

    @@ -220,7 +227,7 @@


    diff --git a/doc/html/boost_functiontypes/reference/macros.html b/doc/html/boost_functiontypes/reference/macros.html index adeef85..24c18db 100644 --- a/doc/html/boost_functiontypes/reference/macros.html +++ b/doc/html/boost_functiontypes/reference/macros.html @@ -10,10 +10,17 @@ -
    Boost C++ Libraries
    + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore

    @@ -233,7 +240,7 @@
    diff --git a/doc/html/boost_functiontypes/reference/synthesis.html b/doc/html/boost_functiontypes/reference/synthesis.html index 975dcf5..367db36 100644 --- a/doc/html/boost_functiontypes/reference/synthesis.html +++ b/doc/html/boost_functiontypes/reference/synthesis.html @@ -12,10 +12,17 @@ -
    Boost C++ Libraries
    + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore

    @@ -52,19 +59,19 @@

    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 +

    @@ -95,19 +102,19 @@

    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 +

    @@ -138,19 +145,19 @@

    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 +

    @@ -181,19 +188,19 @@

    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 +

    @@ -217,7 +224,7 @@


    diff --git a/doc/html/boost_functiontypes/reference/tag_types.html b/doc/html/boost_functiontypes/reference/tag_types.html index 2280b65..eb40aac 100644 --- a/doc/html/boost_functiontypes/reference/tag_types.html +++ b/doc/html/boost_functiontypes/reference/tag_types.html @@ -11,10 +11,17 @@ -
    Boost C++ Libraries
    + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore

    @@ -286,13 +293,13 @@

    TagN
    -
    - Property tag -
    +

    + Property tag +

    tag<Tag1,Tag2...>
    -
    - Compound property tag -
    +

    + Compound property tag +

    @@ -307,7 +314,7 @@


    diff --git a/doc/html/boost_functiontypes/use_cases.html b/doc/html/boost_functiontypes/use_cases.html index a99b5fd..ab9e332 100644 --- a/doc/html/boost_functiontypes/use_cases.html +++ b/doc/html/boost_functiontypes/use_cases.html @@ -10,10 +10,17 @@ -
    Boost C++ Libraries
    + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore

    @@ -162,7 +169,7 @@
    diff --git a/doc/html/index.html b/doc/html/index.html index 9d47b78..358b001 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -8,16 +8,26 @@ -
    Boost C++ Libraries
    + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore

    - +
    Next

    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)

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

    Last revised: May 13, 2007 at 14:01:00 GMT

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


    - +
    Next
    From 60e32163d6552880ebb5d2e1da18be367182a12f Mon Sep 17 00:00:00 2001 From: Tobias Schwinger Date: Mon, 5 Nov 2007 20:00:43 +0000 Subject: [PATCH 10/31] adds redirect to documentation [SVN r40805] --- index.html | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 index.html diff --git a/index.html b/index.html new file mode 100644 index 0000000..ee4ce6e --- /dev/null +++ b/index.html @@ -0,0 +1,14 @@ + + + + + + +

    Automatic redirection failed, please go to + doc/html/index.html.

    +

    Copyright Tobias Schwinger 2005-2007

    +

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

    + + + From 876fff56e77537bdf64aae12513019b2d923d201 Mon Sep 17 00:00:00 2001 From: Tobias Schwinger Date: Sat, 1 Dec 2007 20:52:00 +0000 Subject: [PATCH 11/31] 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 12/31] 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 13/31] 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 14/31] 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 15/31] 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 16/31] 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 17/31] 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 18/31] 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 19/31] 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 20/31] 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 21/31] 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 22/31] 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 23/31] 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 24/31] 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 25/31] 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 26/31] 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 27/31] 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 28/31] 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 29/31] 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 30/31] 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 31/31] 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