summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Schulze <mschulze@cvs.gnome.org>2004-04-28 21:52:12 +0000
committerMartin Schulze <mschulze@src.gnome.org>2004-04-28 21:52:12 +0000
commitd9ec962b5a942c262d99dd4c7a9a5d40bec1c225 (patch)
tree3472695c910a28cd6569bdc548cb4045ec834307
parentdd36c7d1a5b9d29031a9d1ae84211f51fbd43ab0 (diff)
downloadsigc++-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.
-rw-r--r--ChangeLog13
-rw-r--r--NEWS7
-rw-r--r--configure.ac3
-rw-r--r--scripts/cxx.m439
-rw-r--r--sigc++/adaptors/lambda/macros/base.h.m41
-rw-r--r--sigc++/adaptors/macros/bind.h.m461
-rw-r--r--sigc++config.h.in1
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 <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
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 <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