diff options
| author | Martin Schulze <mschulze@cvs.gnome.org> | 2004-04-28 21:52:12 +0000 |
|---|---|---|
| committer | Martin Schulze <mschulze@src.gnome.org> | 2004-04-28 21:52:12 +0000 |
| commit | d9ec962b5a942c262d99dd4c7a9a5d40bec1c225 (patch) | |
| tree | 3472695c910a28cd6569bdc548cb4045ec834307 /sigc++ | |
| parent | dd36c7d1a5b9d29031a9d1ae84211f51fbd43ab0 (diff) | |
| download | sigc++-libsigc++-2.0.1.tar.gz | |
Bump version number to 2.0.1. Add ChangeLog summary for version 2.0.1.libsigc++-2.0.1
2004-04-27 Martin Schulze <mschulze@cvs.gnome.org>
* configure.ac: Bump version number to 2.0.1.
* NEWS: Add ChangeLog summary for version 2.0.1.
* sigc++/adaptors/lambda/macros/base.h.m4: Fixed documentation.
* sigc++/adaptors/macros/bind.h.m4: Hide work-arounds from doxygen.
* scripts/cxx.m4, sigc++config.h.in, configure.ac,
sigc++/adaptors/macros/bind.h.m4: Removed configure check. It
showed that the Apple gcc can also compile the sophisticated version
of the work-around.
Diffstat (limited to 'sigc++')
| -rw-r--r-- | sigc++/adaptors/lambda/macros/base.h.m4 | 1 | ||||
| -rw-r--r-- | sigc++/adaptors/macros/bind.h.m4 | 61 |
2 files changed, 7 insertions, 55 deletions
diff --git a/sigc++/adaptors/lambda/macros/base.h.m4 b/sigc++/adaptors/lambda/macros/base.h.m4 index 5197998..f18b5ee 100644 --- a/sigc++/adaptors/lambda/macros/base.h.m4 +++ b/sigc++/adaptors/lambda/macros/base.h.m4 @@ -73,6 +73,7 @@ namespace sigc { * @code * std::cout << (sigc::_1 + 5)(3); // returns (3 + 5) * std::cout << (sigc::_1 * sigc::_2)(7,10); // returns (7 * 10) + * @endcode */ // dummy structure to keep track of the where we are. diff --git a/sigc++/adaptors/macros/bind.h.m4 b/sigc++/adaptors/macros/bind.h.m4 index 3626e9d..d364a4a 100644 --- a/sigc++/adaptors/macros/bind.h.m4 +++ b/sigc++/adaptors/macros/bind.h.m4 @@ -121,10 +121,12 @@ struct bind_functor<LIST(-1, T_functor, LOOP(T_type%1, $1))> : public adapts<T_f { typedef typename adapts<T_functor>::adaptor_type adaptor_type; +#ifndef DOXYGEN_SHOULD_SKIP_THIS template <LIST(int count, LOOP(class T_arg%1, eval(CALL_SIZE)))> struct deduce_result_type_internal { typedef typename adaptor_type::template deduce_result_type<LIST(LOOP(_P_(T_arg%1), eval(CALL_SIZE-$1)), LOOP(_P_(T_type%1), $1))>::type type; }; FOR(eval($1+1),eval(CALL_SIZE-1),[[DEDUCE_RESULT_TYPE_COUNT($1,%1)]])dnl +#endif /*DOXYGEN_SHOULD_SKIP_THIS*/ template <LOOP(class T_arg%1=void, eval(CALL_SIZE))> struct deduce_result_type { @@ -206,60 +208,9 @@ __FIREWALL__ namespace sigc { -namespace internal { - -#ifdef SIGC_TEMPLATE_SPECIALIZATION_MULTIPLE - -template <class T_arg1> -struct count_void6 - { static const int value=6; }; -template <> -struct count_void6<void> - { static const int value=7; }; - -template <class T_arg1,class T_arg2> -struct count_void5 - { static const int value=5; }; -template <class T_arg1> -struct count_void5<T_arg1,void> - { static const int value=count_void6<T_arg1>::value; }; - -template <class T_arg1,class T_arg2,class T_arg3> -struct count_void4 - { static const int value=4; }; -template <class T_arg1,class T_arg2> -struct count_void4<T_arg1,T_arg2,void> - { static const int value=count_void5<T_arg1,T_arg2>::value; }; - -template <class T_arg1,class T_arg2,class T_arg3,class T_arg4> -struct count_void3 - { static const int value=3; }; -template <class T_arg1,class T_arg2,class T_arg3> -struct count_void3<T_arg1,T_arg2,T_arg3,void> - { static const int value=count_void4<T_arg1,T_arg2,T_arg3>::value; }; - -template <class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5> -struct count_void2 - { static const int value=2; }; -template <class T_arg1,class T_arg2,class T_arg3,class T_arg4> -struct count_void2<T_arg1,T_arg2,T_arg3,T_arg4,void> - { static const int value=count_void3<T_arg1,T_arg2,T_arg3,T_arg4>::value; }; - -template <class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5,class T_arg6> -struct count_void1 - { static const int value=1; }; -template <class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5> -struct count_void1<T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,void> - { static const int value=count_void2<T_arg1,T_arg2,T_arg3,T_arg4,T_arg5>::value; }; +#ifndef DOXYGEN_SHOULD_SKIP_THIS -template <class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5,class T_arg6,class T_arg7> -struct count_void - { static const int value=0; }; -template <class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5,class T_arg6> -struct count_void<T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,void> - { static const int value=count_void1<T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6>::value; }; - -#else +namespace internal { template <class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5,class T_arg6,class T_arg7> struct count_void @@ -286,10 +237,10 @@ template <> struct count_void<void,void,void,void,void,void,void> { static const int value=7; }; -#endif /*SIGC_TEMPLATE_SPECIALIZATION_MULTIPLE*/ - } /* namespace internal */ +#endif /*DOXYGEN_SHOULD_SKIP_THIS*/ + /** @defgroup bind bind(), bind_return() * sigc::bind() alters an arbitrary functor by fixing arguments to certain values. |
