Imported Upstream version 2.99.9 (LGPL3)
[platform/upstream/libsigc++.git] / NEWS
1 2.99.9: (unstable)
2
3 * signal_impl::clear(): Don't clear the slot list during signal emission,
4   to prevent a segfault. And add a test for this.
5   (Kjell Ahlstedt) Bug #784550 (Andrejs Hanins)
6 * Remove signal_base::erase() and signal_impl::erase().
7   (Kjell Ahlstedt) Bug #784550
8 * Various minor code cleanups.
9   (Murray Cumming)
10 * Windows: Update the MS Visual Studio build.
11   (Chu-wei Fan)
12
13 2.99.8: (unstable)
14
15 * signal_impl:
16   - Use std::weak_ptr<signal_impl> in connected slots,
17   to avoid a memory leak.
18   (Kjell Ahlstedt) Bug #775871
19   - clear(): Really avoid erasing the slots prematurely.
20   (Kjell Ahlstedt)
21 * slot_rep: Make destructor, destroy, and clone() virtual,
22   instead of using function pointers that do the same thing.
23   (Kjell Ahlstedt) Bug #777618
24
25 Build:
26 * Visual Studio builds: Require Visual Studio 2017.
27   (Chun-wei Fan)
28 * Add tests/memleakcheck.sh, to run the tests under valgrind.
29   (Kjell Ahlstedt) Bug #775871
30 * Make --disable-benchmark work.
31   (Christophe Lermytte) Bug #774732
32 * Make silent builds really silent.
33   (Kjell Ahlstedt) Bug #768797
34
35 2.99.7: (unstable)
36
37 * connection, slot_base: Use an internal::weak_raw_ptr<> to simplify
38   the code.
39   (Murray Cumming)
40 * signal_base: Do not derive from trackable.
41   (Murray Cumming
42 *  slot_rep: Pass a slot_rep*, not notifiable*, to destroy().
43   (Murray Cumming)
44 * signal_impl: Do not derive from notifiable.
45   (Murray Cumming)
46
47 2.99.6 (unstable):
48
49 * signal: Remove slots() and the container that it returns,
50   and the iterator for that container.
51   See https://mail.gnome.org/archives/libsigc-list/2016-April/msg00009.html
52 * signal: connect(): Return a connection, instead of an iterator that
53   can be implicitly converted to a connection.
54 * Use std::shared_ptr<> for signal_impl reference-counting.
55   Instead of manual reference-counting.
56   (Murray Cumming) Bug #764935
57 * slot: Use unique_ptr<> to avoid direct call of destructor.
58   (Marcin Kolny) Bug #764935
59 * Add optional benchmark code, using boost::timer.
60   (Murray Cumming)
61 * Make some single-item constructors explicit.
62   (Murray Cumming)
63 * Make some member variables and methods private.
64   (Murray Cumming)
65 * Remove _ and __ prefixes on variables and parameters.
66   (Murray Cumming)
67 * Header guards: Remove leading underscores (and trailing underscores).
68   (Murray Cumming)
69 * limit_derived_target<T_Target>: Rename to limit_trackable_target<>
70   and visit_each_type<T_Type>() to visit_each_trackable() to make their purpose
71   more obvious.
72   (Murray Cumming)
73
74 2.99.5 (unstable):
75
76 * Functors (mem_functor, ptr_functor) no longer need to derive from a common
77   functor_base base class, and functors no longer need to have a result_type
78   typedef or alias.
79 * emitters and accumulators no longer need t ohave a result_type typedef or
80   alias.
81 * Remove now-unnecessary adaptor_type type aliases.
82 * Remove some more unused and unnecessary public type aliases.
83
84 2.99.4 (unstable):
85
86 * Minor documentation improvements.
87   (Murray Cumming)
88 * Make some constructors explicit.
89   (Murray Cumming)
90 * Some more minor uses of C++11 syntax.
91   (Murray Cumming)
92 * Remove unused SIGC_FUNCTORS_DEDUCE_RESULT_TYPE_WITH_DECLTYPE.
93   (Murray Cumming)
94 * Reformat code with clang-format.
95   (Murray Cumming)
96
97 2.99.3 (unstable):
98
99 * Correct the license of some header files from GPL to LGPL.
100   (Murray Cumming) Bug #763616 (Dominique Leuenberger)
101
102 2.99.2 (unstable):
103
104 * slots and signal: These should now be declared with the
105   sigc::slot<R(Args...)>
106   and
107   sigc::signal<R(Args...)>
108   syntax, like std::function<>.
109   Version 2.9/2.10 of libsigc++-2.0 supports both the old and new syntax.
110   (Murray Cumming)
111 * sigc::men_fun(): Take the instance by reference only.
112
113 2.99.1 (unstable):
114
115 This is the first release of the libsigc++-3.0 API, which installs in parallel
116 with libsigc++-2.0. The API is not significantly different, but the
117 implementation is far simpler, using variadic templates instead of generating
118 C++ code from .m4 files.
119
120 libsigc++-3.0 requires a compiler with C++14 support.
121
122
123 2.7.1 (unstable):
124
125 * signal: Add a moving connect() method, taking an rvalue reference
126   to a slot.
127   (Kjell Ahlstedt) Bug #756484
128 * can_deduce_result_type_with_decltype: Rename the check() methods to
129   checksize(). check() is a preprocessor macro in Mac OS X.
130   (Kjell Ahlstedt) Bug #759315 (David Otto)
131 * Temporarily undefine the nil macro, if it's defined.
132   nil is a preprocessor macro in Objective-C++ and Mac OS X.
133   (Kjell Ahlstedt) Bug #695235
134 * Correct the mem_functor<> declarations.
135   Murray Cumming
136
137 2.6.2 (stable):
138
139 * slot: Handle auto-disconnection when a slot contains a slot
140   (Kjell Ahlstedt) Bug #755003 (Ryan Beasley)
141 * slot and signal: Correct move constructors and move assignments.
142   (Kjell Ahlstedt) Bug #756484.
143 * trackable, slot_base, signal_base, connection: Add some noexcept specs
144   (Kjell Ahlstedt) Bug #756484.
145 * trackable, slot, signal: Remove noexcept from move operations.
146   (Kjell Ahlstedt) Bug #756484.
147 * slot and signal: Add missing move constructors and move assignments
148   (Kjell Ahlstedt) Bug #756484.
149 * signal_impl: =delete copy and move operations.
150   (Murray Cumming, Kjell Ahlstedt) Bug #756484
151 * typed_slot_rep: =delete unimplemented copy and move operations.
152   (Murray Cumming, Kjell Ahlstedt) Bug #756484
153 * slot_rep: =delete copy and move operations.
154  (Murray Cumming, Kjell Ahlstedt) Bug #756484
155
156
157 2.6.1 (stable):
158
159 * Add back deprecated adaptors/lambda API to avoid an unintented ABI break.
160   (Kjell Ahlstedt) Bug #755550 (Michael Biebl)
161 * sigc::trackable: Move operations: Don't move the callback list
162   (Kjell Ahlstedt) Bug #755393 (Tom Schoonjans)
163
164
165 2.6.0 (stable):
166
167 * C++11: deduce_result_type: Simplify with C++11 variadic template.
168   (Murray Cumming, Marcin Kolny) Bug #753612
169 * Fix the build with MSVC.
170   (Chun-wei Fan) Bug #754082
171 * Update the website.
172   (Kjell Ahlstedt)
173
174
175 2.5.4 (unstable):
176
177 * slot_base::operator=(const &): Copy the blocked too,
178   so the destionation is blocked if the source is blocked,
179   regardless of whether the destionation was previously
180   blocked, because this seems to be what we should expect.
181   (Murray Cumming)
182 * C++11: slot_base, slot*, signal_base, signal*, trackable:
183   Add move operations.
184   (Murray Cumming)
185 * Update MSVC Projects, requiring at least MSVC++ .Net 2013
186   for C++11 support.
187   (Chun-wei Fan)
188
189
190 2.5.3 (unstable):
191
192 * Use C++11 "using" aliases to simplify code that uses type traits.
193   (Murray Cumming) Bug #753580
194
195
196 2.5.2 (unstable):
197
198 * Remove useless headers:
199     sigc++/class_slot.h
200     sigc++/hide.h
201     sigc++/method_slot.h
202     sigc++/object.h
203     sigc++/object_slot.h
204     sigc++/retype.h
205   Some of these still have equivalents in sigc++/adaptors/
206   (Kjell Ahlstedt, Murray Cumming) Bug #752560
207 * C++11: Replace deprecated std::auto_ptr by std::unique_ptr.
208   (Kjell Ahlstedt)
209 * C++11: Use std::is_base_of<> instead of our sigc::is_base_and_derived<>,
210   removing sigc::is_base_and_derived<>.
211   (Kjell Ahlstedt, Murray Cumming) Bug #752560
212 * C++11: Use of range-based for loops.
213   (Murray Cumming)
214 * C++11: Use of the auto keyword.
215   (Murray Cumming)
216 * C++11: Use of nullptr instead of 0.
217   (Murray Cumming)
218 * sigc++/slot.h: Use a regular .h file instead of generating it
219   from an .m4 file. Bug #752560
220   (Kjell Ahlstedt)
221 * Visual Studio Builds: Move 2010 Projects to 2012 to support C++11.
222   (Chun-wei Fan)
223 * Use -Wformat-security and -Wshadow with --enable-warnings=fatal.
224   (Murray Cumming)
225
226
227 2.5.1 (unstable):
228
229 * Use (and require) C++11
230   (Kjell Ahlstedt) 
231 * Using C++11 lambda functions to create sigc::slots:
232   Avoid the need for SIGC_FUNCTORS_DEDUCE_RESULT_TYPE_WITH_DECLTYPE.
233   (Kjell Ahlstedt)
234 * Remove the already-deprecated sigc::lambda (and sigc::group) API.
235   This is an API change but should not be an ABI change, so it should
236   only affect you when rebuilding applications, if you use this API.
237   (Murray Cumming, Kjell Ahlstedt)
238
239
240 2.4.1 (stable):
241
242 * A slot's functor is destroyed when an empty slot is assigned to the slot.
243   (Kjell Ahlstedt) Bug #738602 (James Lin)
244 * test_disconnect_during_emit tests that the slot is really disconnected
245   during signal emission.
246   (Kjell Ahlstedt)
247
248 2.4.0 (stable):
249
250 Note: API/ABI is the same as in release 2.3.2. Compared to stable
251 releases 2.2.x, the API has been broken regarding visit_each() functions.
252 See the NEWS entry for libsigc++ 2.3.2.
253
254 * Fix the test_lambda test case for MS Visual C++ 2013 and other
255   C++11-compliant compilers.
256   (Kjell Ahlstedt) Bug #734368 (Ryan Beasley)
257 * Add a missing #include in limit_reference.h.
258   (Kjell Ahlstedt)
259 * Documentation:
260   - Use doxygen-extra.css from the mm-common package.
261     Requires mm-common 0.9.7 when configured to use maintainer-mode.
262     (Kjell Ahlstedt)
263
264 2.3.2 (unstable):
265
266 Note: The implementation of bug #724496 breaks API for some users,
267 but it does not break ABI.
268 Only users who have added their own visit_each() overloads are affected by
269 the API break. Their programs will still compile, but there will be run-time
270 errors, if they rely on auto-disconnection of slots.
271 Updated instructions for users who implement their own adaptors are found
272 in the description of sigc::adapts<>. 
273
274 * Replace visit_each() overloads by struct visitor<>.
275   Add the test_visit_each test case.
276   (Ryan Beasley, Kjell Ahlstedt) Bug #724496
277 * signal_impl::notify(): Don't delete signal_impl during erase().
278   (Kjell Ahlstedt) Bug #564005 (Alexander Shaduri)
279 * Fix 'make check' with clang++ 3.4 and --enable-warnings=fatal
280   (Kjell Ahlstedt) Bug #724496 (Ryan Beasley)
281 * Fix test_cpp11_lambda for gcc 4.8
282   (Kjell Ahlstedt)
283 * Speed up disconnection of slots.
284   (Kjell Ahlstedt) Bug #167714 (Neal E. Coombes)
285 * Auto-generate the ChangeLog from the git log for 'make dist'.
286   (José Alburquerque)
287 * Don't use __file__ in the FIREWALL m4 macro.
288   (Kjell Ahlstedt) Bug #699168 (John Ralls)
289 * Add the track_obj() adaptor and test_track_obj test case.
290   Deprecate libsigc++ lambdas, sigc::group() and sigc::var().
291   Use C++11 lambda expressions instead.
292   (Kjell Ahlstedt) Bug #672555
293 * Documentation:
294   - Emphasize that signals are reference counted.
295     (Kjell Ahlstedt) Bug #611941 (Jonathon Jongsma)
296   - Mention std::function<> and std::bind() where appropriate.
297     (Kjell Ahlstedt, Chris Vine)
298   - Use DOXYGEN_SHOULD_SKIP_THIS consistently to exclude internal
299     functions from the reference documentation.
300     (Kjell Ahlstedt)
301 * Windows:
302   - Enable C++11 lambda expressions with MS Visual Studio 2012 and later
303     (Ryan Beasley) Bug #733752
304   - Update MSVC_Net2010
305     (Kjell Ahlstedt) Bug #724496 (Ryan Beasley)
306
307 2.3.1 (unstable):
308
309 * signal_base: Add blocked(), block(), unblock().
310   (Kjell Ahlstedt) Bug #153780
311
312 2.2.11 (stable):
313
314 * Fix comma operator in libsigc++ lambda expressions.
315   Andris Pavenis) Bug #342911
316 * Added SIGC_FUNCTORS_DEDUCE_RESULT_TYPE_WITH_DECLTYPE.
317   This allows most uses of libsigc++'s lambda expressions to be 
318   replaced by standard C++11 lambda expressions.
319   (Kjell Ahlstedt) Bug #672555.
320   Thanks to Chow Loong Jin, who posted similar code on libsigc-list.
321 * Use std::size_t and std::ptrdiff_t instead
322   (Kjell Ahlstedt)
323 * Fix 'make check' with gcc 4.7.
324   (Kjell Ahlstedt)
325 * Enable test_lambda in 'make check'.
326   (Kjell Ahlstedt) Bug #669128.
327
328
329 2.2.10:
330
331 * slot_rep: Avoid access to deleted object in notify(),
332         and test case.
333         (Kjell Ahlstedt ) Bug #564005 (Alexander Shaduri)
334 * Mention visit_each() in the documentation of sigc::adapts.
335   (Thomas Rydzynski)
336         
337 2.2.9:
338
339 * trackable: Avoid calling the same callback function twice, fixing some
340         memory corruption.
341         (Kjell Ahlstedt) Bug #589202
342 * Minor documentation corrections.
343   (David King)
344 * Fix the build with GCC 4.6
345         (Kalev Lember)
346 * Windows build fixes for MSVC++ .Net 2005 and 2010
347   (Armin Burgmeier)
348
349 2.2.8:
350
351 Nothing interesting. Just a small change for library.gnome.org.
352
353 2.2.7:
354
355 * Documentation:
356   - Added main page text with doxygen.
357   (David King, Murray Cumming)
358   - Fix the functors Doxygen group.
359   (David King)
360   - Tutorial: Removed outdated marshallers section that had no working example.
361   (Murray Cumming) Bug #417924 (Michael Ekstrand)
362
363 2.2.6:
364
365 * Slight documentation changes.
366   (Murray Cumming) Bug #614741 (Armin Burgmeier)
367
368 2.2.5:
369
370 * Accumulators: Allow return types that are different to the signal's.
371   (Krzysztof KosiÅ„ski)
372 * Documentation:
373   - Disable collaboration graphs in documentation
374   - Use non-blurry font for graph labels.
375   (Daniel Elstner)
376   - sigc::hide() correction: It always only hides one signal argument.
377   (Michael Hasselmann)
378 * Fix the MSVC++ build.
379   (Armin Burgmeier)
380
381 2.2.4.2 (stable):
382
383 * Namespace sigc is now documented, in order to make large chunks of the
384   reference reappear.  (Daniel Elstner)
385 * The shipped reference documentation has been regenerated using Doxygen
386   1.6.1, so that the document type is now XHTML 1.0.  (Daniel Elstner)
387 * The shipped Devhelp file has been generated with a newer version of the
388   XSLT script in mm-common, so that documentation groups no longer appear
389   as namespace prefixes in the keyword list.  (Daniel Elstner)
390
391 2.2.4.1 (stable):
392
393 * Reenable the per-class hierarchy graphs in the reference documentation.
394   (Daniel Elstner)
395 * Drop the custom HTML header and footer, and use the shared doxygen.css
396   file from mm-common. (Daniel Elstner)
397
398 2.2.4 (stable):
399
400 * New build system based on mm-common. The mm-common module is now
401   required for building from the git repository, but not for builds
402   of release archives. (Daniel Elstner)
403 * The public reference documentation is now hosted on library.gnome.org.
404   (Frédéric Péters, Daniel Elstner)
405
406 2.2.3 (stable):
407
408 * Windows:
409   - Added project files (and property sheets) for
410   MSVC++ 2005 and 2008.
411   (Armin Burgmeier)
412   - Removed unnecessary dependency on afxrefs.h, so it builds
413   with MSVC++ Express editions.
414   (Cedric Gustin)
415
416 2.2.2 (stable):
417
418 * Added an include of functors/slot.h that was mistakenly removed
419   during the 2.1 series.
420   (Deng Xiyue) Bug #521418.
421
422 2.2.1 (stable):
423
424 * Really fix the build with Sun CC.
425   (Elaine Xiong. Bug #302098)
426
427 2.2.0 (stable):
428
429 * Build fixes when using gcc 4.3 pre-releases.
430   (Ryan Hill, Vladimir Marek)
431
432 2.1.1 (unstable):
433
434 WARNING: This is an unstable release and should not yet be
435 packaged by distributions unless libsigc++ 2.0.x does not
436 build for some reason (Please report such bugs).
437
438 * Removed the SigC:: namespace and other compatibility API,
439   to fix the build with some versions of some compilers,
440   such as the SUN Forte C++ CC compiler.
441   See bug #302098, for instance
442   (Murray Cumming)
443 * sigc::signal<>:
444   - Added Added typedefs for
445   value_type, reference, and pointer, so that these
446   iterators are more like standard C++ iterators, so they can
447   be used with standard C++ algorithms.
448   (Michael Elkstrand) (Bug #417926).
449   - Added emit_reverse().
450   (John Profic)
451
452 2.0.17:
453
454 * slot::disconnect(): Make this work.
455   sigc::connection::disconnect() already worked.
456   (James Lin, Murray Cumming)
457 * visit_each compilation problem fixed.
458   (Philipp Berndt)
459
460 2.0.16:
461
462 * Fixed build for SUN Forte C++ 5.5
463 * Fixed build for MSVC++ 7.1
464 * Fixed crash when using --no-inline with g++.
465
466 2.0.15:
467
468 * g++ 3.2 (and Mac OS X g++ 3.3) build fix.
469   (Paul Pogonyshev)
470 * Compose: Fix slot lifetime regression introduced in
471   2.0.9. (Philip Langdale)
472 * tests: Small ISO C++ correctness fix (Marek Rouchal)
473 * Don't specify unused function parameter names.
474   (Andris Pavenis)
475
476 2.0.14:
477
478 * SUN Forte 5.7 build fix for ambiguity when using
479   inner template class. However, you still need the
480   patch in bug #302098 to finish the build.
481
482 2.0.13:
483
484 * signal_emit::emit(): Ensure the correct order of
485   destruction of the member variables, to avoid a leak.
486   (Andreas Ames, bug #306249)
487 * Allow recursive signal emission again.
488   (Neal E. Coombes, bug #303896)
489 * SUN Forte CC 5.5 build fixes:
490   - test_compatibility minor fix.
491   - visit_each() template specializations:
492   Mention the bool I_derives_trackable template type,
493   (Friedemann Kleint, bug #305647)
494  - Check for the non-standard SUN reverse_iterator,
495   and use alternative code if necessary.
496   (Murray Cumming)
497
498 2.0.12:
499
500 * Fixes crashes when using virtual inheritance, particularly
501   with bound by-reference parameters, caused by casting
502   from derived to base when the derived destructor has run.
503   (Régis Duchesne)
504   This might affect non-g++ compilers, so do tell us about
505   any problems.
506
507 2.0.11:
508
509 * Build fixes for SUN Forte, Tru64
510   (Murray Cumming), and MSVC++ (Cedric Gustin).
511
512 2.0.10:
513
514 * tests: Include <new> to avoid unresolved symbols on Tru64.
515   (Tim Mooney)
516 * When signal handlers are connected made during an emit
517   of the same signal, prevent them from being called in the
518   same emit, to prevent infinite loops.
519   (Neal E. Coombes)
520 * Performance improvement in a corner case.
521   (Neal E. Coombes).
522
523 2.0.9:
524
525 * sigc::bind() now works with the AIX and Tru64 compilers.
526   See the comments in sigc++/visit_each.h: visit_each_type()
527   if you have compilation problems.
528   (Murray Cumming)
529 * sigc::var() is now documented. (Roger Ferrer Ibáñez)
530
531 2.0.8:
532
533 * Maybe avoid (incorrect) warning with g++ 3.3.5.
534   (Murray Cumming)
535 * Fix namespace ambiguity when using multiple
536   major versions of libsigc++. (Liza Klerck)
537
538 2.0.7:
539
540 * Now builds with the following compilers, in addition to
541 the existing GNU g++, SUN Forte CC 5.5, MSVC++ .Net 2003,
542 and Intel compilers:
543 - IBM AIX xlC v7
544 - Tru64 C++ V6.5-042
545 - IRIX MIPSpro 7.4.2m
546   (Older versions of all these compilers might also work.)
547   (Murray Cumming, www.thewrittenword.com)
548 * MSVC++ .Net 2003 build improvements.
549   (Cedric Gustin, Timothy M. Shead)
550 * Replace C-style casts with reinterpret_cast<> and
551   static_cast<>. (e97_far at e.kth.se).
552 * Documentation: Added manual, based on the manual in
553   libsigc++ 1.2, but updated for the new API.
554   (Murray Cumming)
555
556
557 2.0.6:
558
559 * Fixed a memory leak in sigc::slot.
560 * Fixed compilation for gcc-3.4.
561 * Fixed compilation for Intel C++ compiler (upgraded libtool).
562 * Fixed project files for MSVC .Net (Timothy M. Shead).
563 * Fixed segfaults when compiled with MSVC .Net 2003 (moved
564   all calls to new and delete into non-inline library code).
565 * In the compatibility module use correct bound_mem_functor
566   variants for const (volatile) methods when creating a slot.
567 * Minor documentation fix.
568 * Resolved bugs: #152327 #148744 #152323 #151404 #153143
569
570 2.0.5:
571
572 * Distribute pregenerated configuration header for MSVC .Net.
573
574 2.0.4:
575
576 * Fixed warnings and compiler errors in the test cases.
577 * Added a new test case (Murray Cumming).
578 * Fixed 'hello_world' example.
579 * Don't test optional features that fail with the Sun FORTE.
580 * Fixes for the Sun FORTE to compile out-of-the-box
581   (Damien Carbery, Murray Cumming, Martin Schulze).
582 * Fixes for MSVC to build a DLL out-of-the-box (James Lin).
583 * Improved compiler specific configuration during 'configure'.
584 * Added rmp description file libsigc++-2.0.spec (Eric Bourque).
585 * Minor documentation improvements (Murray Cumming).
586 * Resolved bugs: #147311 #147313 #147391 #144846 #145541
587
588 2.0.3:
589
590 * Fix segfault on emission of unconnected signal.
591 * Test emission of unconnected signals in the test case.
592 * Suppress compiler warning at dynamic_cast<>-test for good.
593   (Help from Christof Petig and Timothy M. Shead.)
594
595 2.0.2:
596
597 * Suppress compiler warning in compatibility module at
598   dynamic_cast<>-test (fix suggested by Timothy M. Shead).
599 * If a custom accumulator is specified invoke it on signal
600   emission even if the signal's slot list is empty. (This used
601   to be the case in libsigc++-1.2 as pointed out by Timothy.)
602
603 2.0.1:
604
605 * Fixed serious bug in reference counting in sigc::signal_base::impl().
606 * Fixed SigC::Object-derivation check in SigC::slot() compatibility module.
607 * Fixed compilation on Apple gcc 3.3 (assisted by Spundun Bhatt).
608 * Fixed configure check for gcc 3.4 (Murray Cumming).
609
610 2.0.0:
611
612 * Implemented sigc::connection::blocked() (Murray Cumming).
613 * Added the scripts directory to the make dist target (Murray Cumming).
614 * Added more documentation (Martin Schulze).
615
616 1.9.16:
617
618 * Fixed compiler warning in sigc::connection (Alexander Nedotsukov, Murray Cumming).
619 * Fixed examples and made them part of the regular build (Murray Cumming).
620 * Added header sigc++config.h for configure time checks (Murray Cumming).
621 * Added configure time checks to determine the correct syntax
622   for explicit template method specializations (Murray Cumming).
623 * Removed code using partial specializations of overloaded template methods
624   from test cases. SUN Forte doesn't support this feature (Martin Schulze).
625 * Fixed compilation for gcc 3.4 (Murray Cumming).
626
627 1.9.15:
628
629 API additions:
630 * Add numbered slot# templates.
631 * Allow for methods of the object's base types to be passed into sigc::mem_fun().
632
633 Other fixes and cleanups:
634 * Make is_base_and_derived template compatible with the SUN Forte.
635 * Non-template code moved from .m4 macro source to .h/.cc files (Murray Cumming).
636 * Implementation moved to .cc files (Murray Cumming).
637 * More fixes for the SUN Forte. Make some more ctors explicit.
638
639 1.9.14:
640
641 * Added sigc::slot_base::operator bool() (Murray Cumming).
642 * Build docs directory by default (Murray Cumming).
643 * Fixed minor doxygen issues (Murray Cumming).
644 * Fixed compiler warning in signal.h (Murray Cumming).
645
646 1.9.13:
647
648 * Fixed passing references through sigc::slot (Reported by Jeff Franks).
649 * Enabled binding of objects to method slots through sigc::bind().
650 * Reworked sigc::bind() API: Made the template argument for the
651   parameter position zero-based and optional. Added overloads for
652   binding of up to 7 arguments at a time when no position is specified.
653 * Reworked sigc::hide() API: Made the template argument for the
654   parameter position zero-based and optional.
655 * Fixed compilation problems with MSVC .Net 2003 (Roel Vanhout).
656 * Distribute MSVC .Net 2003 project files in the tarballs.
657 * Improved and extended documentation.
658 * Minor cleanups.
659
660 1.9.12:
661
662 * Added adaptor retype(). With this final API addition all adaptors
663   are in place that are available in libsigc++-1.2.
664 * Added negation lambda operator. Use STL names for lambda actions.
665 * Remove formerly disabled support for gcc extension typeof().
666 * Added project files for MS Visual Studio .Net 2003. (Roel Vanhout)
667 * Make libsigc++2 compile with .Net 2003. (Roel Vanhout, Martin Schulze)
668 * Build shared version of libsigc++2 by default. (Cedric Gustin)
669 * Add support for win32 platform. (Cedric Gustin)
670 * Install .m4 files. (requested by Ron Steinke)
671 * Cleaned up functors.
672 * Restructured and completed documentation of the core library parts.
673
674 1.9.11:
675
676 API Additions and important bug fixes:
677 * Compatibility module completed. libsigc++-1.2 filenames are preserved.
678 * Fixed critical bug in auto-disconnection: don't defer detaching
679   of a slot from all referred trackables during signal emission.
680 * Reduced size of slots significantly.
681 * Fixed support for sigc::ref() in adaptors.
682 * Fixed sigc::visit_each(): only hit targets that are passed by
683   reference; pass bound members in bound_member_functor by reference.
684 * Add lambda actions sigc::{reinterpret,static,dynamic}_cast_
685   to support explicit parameter conversion.
686 * Add adaptors sigc::retype_return<>() and sigc::hide_return().
687
688 Minor fixes:
689 * Fixed return type deduction for bind<0>.
690   libsigc++-1.9.11 should compile with gcc-3.3.
691 * Fixed copy constructor and operator=() of slot template.
692 * Fixed a compiler warning in signal_emit#<>::emit().
693 * Improved test case.
694
695 1.9.10:
696
697 * Fix compiler issues with gcc-3.3.2 (patch from Jeff Franks).
698 * Remove compiler check for the gcc extension typeof().
699 * Simplify bind_functor templates.
700 * Move definition of struct nil into functor_trait.h.
701
702 1.9.9:
703
704 * Add a constructor to sigc::connection that takes a slot_base&
705   to support user defined slot lists like they are used in gtkmm.
706 * Fix compiler issues with gcc-3.3.2 (reported by Jeff Franks).
707
708 1.9.8:
709
710 * Add compatibility module that defines namespace SigC.
711   namespace SigC should be API compatible to libsigc++-1.2.
712   Currently only the core parts of the library are supported.
713   Adaptors are still to follow.
714 * Fix connection::operator=(). Include connection.h in sigc++.h.
715 * Get rid of namespace functor.
716 * Rename dependency to destroy_notify_callback.
717 * Rename trackable::clear() to trackable::notify_callbacks().
718 * Move slot_base, signal_base, slot_iterator[_buf], slot_list
719   out of namespace internal. They are public API.
720 * Add reference counter to signal_impl enabling signals
721   to share the underlying information.
722 * Add convenience function signal#::make_slot().
723 * Get rid of one-letter-parameter-names.
724 * Get rid of "using namespace ..." in the test cases.
725 * Add lambda operators subscript ([]) and assign (=).
726 * Fix is_base_and_derived<> for const types.
727 * New and updated documentation.
728 * Add previous announces to file NEWS.
729
730 1.9.7:
731
732 * Added sigc++/sigc++.h. (Murray Cumming)
733 * Added member_method example. (Murray Cumming)
734 * Renamed closure to slot.
735 * Fixed issues with gcc-3.3. (Adreas Rottmann)
736 * Removed unnecessary void specializations.
737 * Made adaptors' operator()() (overload with no arguments) return a value.
738 * Made visit_each() support adaptors.
739 * Overhauled return type deduction to make it work without typeof().
740 * Added convinience macros SIGC_FUNCTORS_HAVE_RESULT_TYPE and
741 SIGC_FUNCTOR_TRAIT(T_functor, T_result) to make return type deduction system
742 support 3rd-party funtors.
743 * Changed syntax of group adaptor from "[functor] % grp([lambdas])" to "group
744 ([functor], [lambdas])".
745 * Made many fixes to lambda functionality.
746 * Added var() and constant() lambda creators.
747 * Added many lambda operators.
748 * Added ref() which creates a reference wrapper to enable storage of
749 references in bind and group adaptors.
750 * Expanded test suite.
751 * Added documentation. (Corrections by Murray Cumming)
752
753 1.9.6:
754
755 * First public release of the unstable 2.0 generation.
756   libsigc++ 2.0 uses modern C++ mechanisms to achieve a highly
757   flexible, yet typesafe callback system. It supports all features of
758   libsigc++ 1.2 and improves upon it by:
759   - No need to specify the number of arguments in signal definitions.
760   - Connection of any compatible (=implicitly convertable) functor
761    to a signal.
762   - Implicit type conversions of parameters during signal emission.
763   - Lambda adaptor for complete restructuring of functor parameter
764    lists in one line (subject to changes).
765   - Signal has a fully featured stl style list interface.
766   - A convinient accumulator API (replacing the old marshaller API).
767   - Removal of unnecessary memory management functionality.
768   - Lightweight class "trackable" for use as base class of your
769    class hierarchy replaces class "Object".