? libsigc.kdevelop
? libsigc.kdevelop.pcs
? libsigc.kdevses
? sigc_sun57.patch
? stamp-h1
? docs/manual/html
? sigc++/limit_reference.h
? tests/test_bind_ref
? tests/test_copy_invalid_slot
? tests/test_custom
? tests/test_limit_reference
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/libsigc++2/ChangeLog,v
retrieving revision 1.205
diff -u -p -r1.205 ChangeLog
--- ChangeLog	10 Jun 2005 13:35:28 -0000	1.205
+++ ChangeLog	10 Jun 2005 14:35:44 -0000
@@ -1,5 +1,18 @@
 2005-06-10  Murray Cumming  <murrayc@murrayc.com>
 
+	* sigc++/macros/signal.h.m4: Comment out 
+	SIGC_TYPEDEF_REDEFINE_ALLOWED because the correlation between 
+	that compiler characteristic and the other one no longer 
+	exists in SUN CC 5.7, and I can not yet find a simple test for 
+	SIGC_TYPEDEF_REDEFINE_ALLOWED. This change should not be 
+	committed.
+	class signalN: Use slotN instead of slot<> because SUN CC 5.7 
+	complains, bizarrely, that we are providing too many template 
+	parameters. I need to investigate whether this changes binary 
+	ABI before committing.
+
+2005-06-10  Murray Cumming  <murrayc@murrayc.com>
+
 	* sigc++/visit_each.h: Make the 
         limit_derived_target::with_type inner class an outer class, 
 	to satisfy the SUN CC 5.7 compiler, though I think it is a 
Index: sigc++/macros/signal.h.m4
===================================================================
RCS file: /cvs/gnome/libsigc++2/sigc++/macros/signal.h.m4,v
retrieving revision 1.17
diff -u -p -r1.17 signal.h.m4
--- sigc++/macros/signal.h.m4	7 Jun 2005 13:34:22 -0000	1.17
+++ sigc++/macros/signal.h.m4	10 Jun 2005 14:35:44 -0000
@@ -209,7 +209,13 @@ class signal$1
 public:
   typedef internal::signal_emit$1<LIST(T_return, LOOP(T_arg%1, $1), T_accumulator)> emitter_type;
   typedef typename emitter_type::result_type         result_type;
-  typedef slot<LIST(T_return, LOOP(T_arg%1, $1))>    slot_type;
+
+  //We used to use slot<> instead of slotN<> here, but the SUN CC 5.7 (not earlier versions) compiler
+  //says that there are _too many_ arguments, which seems odd.
+  //Luckily it's OK to work around that.
+  //typedef slot<LIST(T_return, LOOP(T_arg%1, $1))>    slot_type;
+  typedef slot$1<LIST(T_return, LOOP(T_arg%1, $1))>    slot_type;
+
   typedef slot_list<slot_type>                       slot_list_type;
   typedef typename slot_list_type::iterator               iterator;
   typedef typename slot_list_type::const_iterator         const_iterator;
@@ -484,7 +490,7 @@ divert(0)
   //Compilers, such as older versions of SUN Forte C++, that do not allow this also often
   //do not allow a typedef to have the same name as a class in the typedef's definition.
   //For Sun Forte CC 5.7 (SUN Workshop 10), comment this out to fix the build.
-  #define SIGC_TYPEDEF_REDEFINE_ALLOWED 1
+  //#define SIGC_TYPEDEF_REDEFINE_ALLOWED 1
 #endif
 
 namespace sigc {
