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 | |
parent | dd36c7d1a5b9d29031a9d1ae84211f51fbd43ab0 (diff) | |
download | sigc++-d9ec962b5a942c262d99dd4c7a9a5d40bec1c225.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.
-rw-r--r-- | ChangeLog | 13 | ||||
-rw-r--r-- | NEWS | 7 | ||||
-rw-r--r-- | configure.ac | 3 | ||||
-rw-r--r-- | scripts/cxx.m4 | 39 | ||||
-rw-r--r-- | sigc++/adaptors/lambda/macros/base.h.m4 | 1 | ||||
-rw-r--r-- | sigc++/adaptors/macros/bind.h.m4 | 61 | ||||
-rw-r--r-- | sigc++config.h.in | 1 |
7 files changed, 28 insertions, 97 deletions
@@ -1,3 +1,16 @@ +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. + 2004-04-26 Martin Schulze <mschulze@cvs.gnome.org> * sigc++/macros/object_slot.h.m4: Modified test for SigC::Object @@ -17,6 +17,13 @@ This version of libsigc++ needs GNU g++ 3.2 or higher to compile. *** ChangeLog summary: +2.0.1: + +* Fixed serious bug in reference counting in sigc::signal_base::impl(). +* Fixed SigC::Object-derivation check in SigC::slot() compatibility module. +* Fixed compilation on Apple gcc 3.3 (assisted by Spundun Bhatt). +* Fixed configure check for gcc 3.4 (Murray Cumming). + 2.0.0: * Implemented sigc::connection::blocked() (Murray Cumming). diff --git a/configure.ac b/configure.ac index ae1d532..9f55ada 100644 --- a/configure.ac +++ b/configure.ac @@ -11,7 +11,7 @@ dnl This version stuff is just for the packaging section of the tool. dnl thus make format_package-0.0.1.tar.gz FP_MAJOR_VERSION=2 FP_MINOR_VERSION=0 -FP_MICRO_VERSION=0 +FP_MICRO_VERSION=1 FP_VERSION=$FP_MAJOR_VERSION.$FP_MINOR_VERSION.$FP_MICRO_VERSION dnl For automake. @@ -69,7 +69,6 @@ AC_PROG_CXX AC_LANG_CPLUSPLUS SIGC_CXX_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD() -SIGC_CXX_TEMPLATE_SPECIALIZATION_MULTIPLE() if test "X$config_error" = "Xyes" ; then AC_ERROR( diff --git a/scripts/cxx.m4 b/scripts/cxx.m4 index 8225dfd..609c748 100644 --- a/scripts/cxx.m4 +++ b/scripts/cxx.m4 @@ -48,42 +48,3 @@ AC_TRY_COMPILE( AC_MSG_RESULT([$sigcm_cxx_template_specialization_operator_overload]) ]) ]) - -AC_DEFUN([SIGC_CXX_TEMPLATE_SPECIALIZATION_MULTIPLE],[ -AC_MSG_CHECKING([if C++ compiler chooses the correct template specialization when offered different ones for different numbers unspecified arguments left.]) -AC_TRY_COMPILE( -[ - #include <iostream> - - template <class T_type1, class T_type2> - struct Thing - { - static const int value = 0; - }; - - template <class T_type1> - struct Thing<T_type1, void> - { - static const int value = 1; - }; - - template <> - struct Thing<void,void> - { - static const int value = 2; - }; -], -[ - //This fails on Apple gcc 3.3: - std::cout << "number of void arguments: " << Thing<void,void>::value << std::endl; -], -[ - sigcm_cxx_template_specialization_multiple=yes - AC_DEFINE([SIGC_TEMPLATE_SPECIALIZATION_MULTIPLE],[1],[does the C++ compiler choose the correct template specialization when offered different ones for different numbers unspecified arguments left.]) - AC_MSG_RESULT([$sigcm_cxx_template_specialization_multiple]) -],[ - sigcm_cxx_template_specialization_multiple=no - AC_DEFINE([SIGC_TEMPLATE_SPECIALIZATION_MULTIPLE],[0]) - AC_MSG_RESULT([$sigcm_cxx_template_specialization_multiple]) -]) -]) 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. diff --git a/sigc++config.h.in b/sigc++config.h.in index 686769d..dd851e1 100644 --- a/sigc++config.h.in +++ b/sigc++config.h.in @@ -1,4 +1,3 @@ /* config.h.in. Generated from configure.ac by autoheader. */ #undef SIGC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD -#undef SIGC_TEMPLATE_SPECIALIZATION_MULTIPLE |