From d9ec962b5a942c262d99dd4c7a9a5d40bec1c225 Mon Sep 17 00:00:00 2001 From: Martin Schulze Date: Wed, 28 Apr 2004 21:52:12 +0000 Subject: Bump version number to 2.0.1. Add ChangeLog summary for version 2.0.1. 2004-04-27 Martin Schulze * 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. --- ChangeLog | 13 +++++++ NEWS | 7 ++++ configure.ac | 3 +- scripts/cxx.m4 | 39 --------------------- sigc++/adaptors/lambda/macros/base.h.m4 | 1 + sigc++/adaptors/macros/bind.h.m4 | 61 ++++----------------------------- sigc++config.h.in | 1 - 7 files changed, 28 insertions(+), 97 deletions(-) diff --git a/ChangeLog b/ChangeLog index 04a78c3..f570823 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +2.0.1: + +2004-04-27 Martin Schulze + + * 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 * sigc++/macros/object_slot.h.m4: Modified test for SigC::Object diff --git a/NEWS b/NEWS index 91f7944..6f9fae4 100644 --- a/NEWS +++ b/NEWS @@ -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 - - template - struct Thing - { - static const int value = 0; - }; - - template - struct Thing - { - static const int value = 1; - }; - - template <> - struct Thing - { - static const int value = 2; - }; -], -[ - //This fails on Apple gcc 3.3: - std::cout << "number of void arguments: " << Thing::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 : public adapts::adaptor_type adaptor_type; +#ifndef DOXYGEN_SHOULD_SKIP_THIS template struct deduce_result_type_internal { typedef typename adaptor_type::template deduce_result_type::type type; }; FOR(eval($1+1),eval(CALL_SIZE-1),[[DEDUCE_RESULT_TYPE_COUNT($1,%1)]])dnl +#endif /*DOXYGEN_SHOULD_SKIP_THIS*/ template struct deduce_result_type { @@ -206,60 +208,9 @@ __FIREWALL__ namespace sigc { -namespace internal { - -#ifdef SIGC_TEMPLATE_SPECIALIZATION_MULTIPLE - -template -struct count_void6 - { static const int value=6; }; -template <> -struct count_void6 - { static const int value=7; }; - -template -struct count_void5 - { static const int value=5; }; -template -struct count_void5 - { static const int value=count_void6::value; }; - -template -struct count_void4 - { static const int value=4; }; -template -struct count_void4 - { static const int value=count_void5::value; }; - -template -struct count_void3 - { static const int value=3; }; -template -struct count_void3 - { static const int value=count_void4::value; }; - -template -struct count_void2 - { static const int value=2; }; -template -struct count_void2 - { static const int value=count_void3::value; }; - -template -struct count_void1 - { static const int value=1; }; -template -struct count_void1 - { static const int value=count_void2::value; }; +#ifndef DOXYGEN_SHOULD_SKIP_THIS -template -struct count_void - { static const int value=0; }; -template -struct count_void - { static const int value=count_void1::value; }; - -#else +namespace internal { template struct count_void @@ -286,10 +237,10 @@ template <> struct count_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 -- cgit v1.2.1