Imported Upstream version 2.99.4 (LGPL3) upstream/2.99.4
authorDongHun Kwak <dh0128.kwak@samsung.com>
Wed, 11 Sep 2019 04:25:14 +0000 (13:25 +0900)
committerDongHun Kwak <dh0128.kwak@samsung.com>
Mon, 14 Sep 2020 02:04:58 +0000 (11:04 +0900)
257 files changed:
ChangeLog
MSVC_Net2013/sigc++config.h
MSVC_Net2013/sigc.rc
Makefile.in
NEWS
configure
configure.ac
docs/manual/html/ch01.html
docs/manual/html/ch02.html
docs/manual/html/ch02s02.html
docs/manual/html/ch02s03.html
docs/manual/html/ch02s04.html
docs/manual/html/ch03.html
docs/manual/html/ch03s02.html
docs/manual/html/ch04.html
docs/manual/html/ch04s02.html
docs/manual/html/index.html
docs/reference/html/annotated.html
docs/reference/html/classes.html
docs/reference/html/classsigc_1_1bound__argument-members.html
docs/reference/html/classsigc_1_1bound__argument.html
docs/reference/html/classsigc_1_1bound__argument_3_01std_1_1reference__wrapper_3_01T__wrapped_01_4_01_4-members.html
docs/reference/html/classsigc_1_1bound__argument_3_01std_1_1reference__wrapper_3_01T__wrapped_01_4_01_4.html
docs/reference/html/classsigc_1_1bound__argument_3_01std_1_1reference__wrapper_3_01const_01T__wrapped_01_4_01_4.html
docs/reference/html/classsigc_1_1bound__mem__functor-members.html
docs/reference/html/classsigc_1_1bound__mem__functor.html
docs/reference/html/classsigc_1_1can__deduce__result__type__with__decltype-members.html
docs/reference/html/classsigc_1_1can__deduce__result__type__with__decltype.html
docs/reference/html/classsigc_1_1limit__reference-members.html
docs/reference/html/classsigc_1_1limit__reference.html
docs/reference/html/classsigc_1_1limit__reference_3_01T__type_00_01true_01_4-members.html
docs/reference/html/classsigc_1_1limit__reference_3_01T__type_00_01true_01_4.html
docs/reference/html/classsigc_1_1mem__functor-members.html
docs/reference/html/classsigc_1_1mem__functor.html
docs/reference/html/classsigc_1_1pointer__functor.html
docs/reference/html/classsigc_1_1pointer__functor_3_01T__return_07T__args_8_8_8_08_4-members.html
docs/reference/html/classsigc_1_1pointer__functor_3_01T__return_07T__args_8_8_8_08_4.html
docs/reference/html/classsigc_1_1signal.html
docs/reference/html/classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4-members.html
docs/reference/html/classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4.html
docs/reference/html/classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4_1_1accumulated-members.html
docs/reference/html/classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4_1_1accumulated.html
docs/reference/html/classsigc_1_1signal__with__accumulator-members.html
docs/reference/html/classsigc_1_1signal__with__accumulator.html
docs/reference/html/classsigc_1_1slot.html
docs/reference/html/classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4-members.html
docs/reference/html/classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html
docs/reference/html/classsigc_1_1slot__base-members.html
docs/reference/html/classsigc_1_1slot__base.html
docs/reference/html/classsigc_1_1track__obj__functor-members.html
docs/reference/html/classsigc_1_1track__obj__functor.html
docs/reference/html/deprecated.html [deleted file]
docs/reference/html/dir_0bd3c8d814eb03171de012519d7a2ccd.html
docs/reference/html/dir_5c02128c554eaa40138b2e605fc08970.html
docs/reference/html/dir_5fbc72877197f8c6013d0f619df5433c.html
docs/reference/html/dir_721a6b9909c6844e1177e3a6a712a0d2.html
docs/reference/html/functions.html
docs/reference/html/functions_b.html
docs/reference/html/functions_c.html
docs/reference/html/functions_d.html
docs/reference/html/functions_e.html
docs/reference/html/functions_f.html
docs/reference/html/functions_func.html
docs/reference/html/functions_g.html
docs/reference/html/functions_h.html
docs/reference/html/functions_i.html
docs/reference/html/functions_l.html
docs/reference/html/functions_m.html
docs/reference/html/functions_n.html
docs/reference/html/functions_o.html
docs/reference/html/functions_p.html
docs/reference/html/functions_r.html
docs/reference/html/functions_s.html
docs/reference/html/functions_t.html
docs/reference/html/functions_type.html
docs/reference/html/functions_u.html
docs/reference/html/functions_v.html
docs/reference/html/functions_vars.html
docs/reference/html/functions_~.html
docs/reference/html/graph_legend.html
docs/reference/html/group__adaptors.html
docs/reference/html/group__bind.html
docs/reference/html/group__compose.html
docs/reference/html/group__exception__catch.html
docs/reference/html/group__hide.html
docs/reference/html/group__mem__fun.html
docs/reference/html/group__ptr__fun.html
docs/reference/html/group__retype.html
docs/reference/html/group__sigcfunctors.html
docs/reference/html/group__signal.html
docs/reference/html/group__slot.html
docs/reference/html/group__track__obj.html
docs/reference/html/hierarchy.html
docs/reference/html/index.html
docs/reference/html/inherits.html
docs/reference/html/modules.html
docs/reference/html/namespacemembers.html
docs/reference/html/namespacemembers_func.html
docs/reference/html/namespacemembers_type.html
docs/reference/html/namespaces.html
docs/reference/html/namespacesigc.html
docs/reference/html/pages.html
docs/reference/html/since_2_2_11.html [deleted file]
docs/reference/html/since_2_4.html
docs/reference/html/since_2_8.html
docs/reference/html/structsigc_1_1adaptor__base.html
docs/reference/html/structsigc_1_1adaptor__functor-members.html
docs/reference/html/structsigc_1_1adaptor__functor.html
docs/reference/html/structsigc_1_1adaptor__trait.html
docs/reference/html/structsigc_1_1adaptor__trait_3_01T__functor_00_01false_01_4-members.html
docs/reference/html/structsigc_1_1adaptor__trait_3_01T__functor_00_01false_01_4.html
docs/reference/html/structsigc_1_1adaptor__trait_3_01T__functor_00_01true_01_4-members.html
docs/reference/html/structsigc_1_1adaptor__trait_3_01T__functor_00_01true_01_4.html
docs/reference/html/structsigc_1_1adapts-members.html
docs/reference/html/structsigc_1_1adapts.html
docs/reference/html/structsigc_1_1bind__functor-members.html
docs/reference/html/structsigc_1_1bind__functor.html
docs/reference/html/structsigc_1_1bind__functor_3-1_00_01T__functor_00_01T__type_8_8_8_4-members.html
docs/reference/html/structsigc_1_1bind__functor_3-1_00_01T__functor_00_01T__type_8_8_8_4.html
docs/reference/html/structsigc_1_1bind__return__functor-members.html
docs/reference/html/structsigc_1_1bind__return__functor.html
docs/reference/html/structsigc_1_1compose1__functor-members.html
docs/reference/html/structsigc_1_1compose1__functor.html
docs/reference/html/structsigc_1_1compose2__functor-members.html
docs/reference/html/structsigc_1_1compose2__functor.html
docs/reference/html/structsigc_1_1connection-members.html
docs/reference/html/structsigc_1_1connection.html
docs/reference/html/structsigc_1_1exception__catch__functor-members.html
docs/reference/html/structsigc_1_1exception__catch__functor.html
docs/reference/html/structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4-members.html
docs/reference/html/structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html
docs/reference/html/structsigc_1_1functor__base.html
docs/reference/html/structsigc_1_1functor__trait-members.html
docs/reference/html/structsigc_1_1functor__trait.html
docs/reference/html/structsigc_1_1hide__functor-members.html
docs/reference/html/structsigc_1_1hide__functor.html
docs/reference/html/structsigc_1_1notifiable-members.html
docs/reference/html/structsigc_1_1notifiable.html
docs/reference/html/structsigc_1_1retype__functor-members.html
docs/reference/html/structsigc_1_1retype__functor.html
docs/reference/html/structsigc_1_1retype__return__functor-members.html
docs/reference/html/structsigc_1_1retype__return__functor.html
docs/reference/html/structsigc_1_1retype__return__functor_3_01void_00_01T__functor_01_4-members.html
docs/reference/html/structsigc_1_1retype__return__functor_3_01void_00_01T__functor_01_4.html
docs/reference/html/structsigc_1_1signal__base-members.html
docs/reference/html/structsigc_1_1signal__base.html
docs/reference/html/structsigc_1_1slot__const__iterator-members.html
docs/reference/html/structsigc_1_1slot__const__iterator.html
docs/reference/html/structsigc_1_1slot__iterator-members.html
docs/reference/html/structsigc_1_1slot__iterator.html
docs/reference/html/structsigc_1_1slot__list-members.html
docs/reference/html/structsigc_1_1slot__list.html
docs/reference/html/structsigc_1_1trackable-members.html
docs/reference/html/structsigc_1_1trackable.html
docs/reference/html/structsigc_1_1type__trait-members.html
docs/reference/html/structsigc_1_1type__trait.html
docs/reference/html/structsigc_1_1type__trait_3_01T__type[N]_4-members.html
docs/reference/html/structsigc_1_1type__trait_3_01T__type[N]_4.html
docs/reference/html/structsigc_1_1type__trait_3_01T__type_01_6_01_4-members.html
docs/reference/html/structsigc_1_1type__trait_3_01T__type_01_6_01_4.html
docs/reference/html/structsigc_1_1type__trait_3_01const_01T__type_01_6_01_4-members.html
docs/reference/html/structsigc_1_1type__trait_3_01const_01T__type_01_6_01_4.html
docs/reference/html/structsigc_1_1type__trait_3_01void_01_4-members.html
docs/reference/html/structsigc_1_1type__trait_3_01void_01_4.html
docs/reference/html/structsigc_1_1unwrap__reference-members.html
docs/reference/html/structsigc_1_1unwrap__reference.html
docs/reference/html/structsigc_1_1unwrap__reference_3_01std_1_1reference__wrapper_3_01T__type_01_4_01_4-members.html
docs/reference/html/structsigc_1_1unwrap__reference_3_01std_1_1reference__wrapper_3_01T__type_01_4_01_4.html
docs/reference/html/structsigc_1_1unwrap__reference_3_01std_1_1reference__wrapper_3_01const_01T__type_01_4_01_4.html
docs/reference/html/structsigc_1_1visitor-members.html
docs/reference/html/structsigc_1_1visitor.html
docs/reference/libsigc++-3.0.devhelp2
docs/reference/libsigc++-3.0.tag
examples/hello_world.cc
examples/member_method.cc
sigc++/CMakeLists.txt
sigc++/Makefile.am
sigc++/Makefile.in
sigc++/adaptors/adaptor_base.h
sigc++/adaptors/adaptor_trait.h
sigc++/adaptors/bind.h
sigc++/adaptors/bind_return.h
sigc++/adaptors/bound_argument.h
sigc++/adaptors/compose.h
sigc++/adaptors/exception_catch.h
sigc++/adaptors/hide.h
sigc++/adaptors/retype.h
sigc++/adaptors/retype_return.h
sigc++/adaptors/track_obj.h
sigc++/bind_return.h
sigc++/connection.cc
sigc++/connection.h
sigc++/functors/functor_base.h
sigc++/functors/functor_trait.h
sigc++/functors/mem_fun.h
sigc++/functors/ptr_fun.h
sigc++/functors/slot.cc [deleted file]
sigc++/functors/slot.h
sigc++/functors/slot_base.cc
sigc++/functors/slot_base.h
sigc++/limit_reference.h
sigc++/member_method_trait.h
sigc++/reference_wrapper.h
sigc++/retype_return.h
sigc++/sigc++.h
sigc++/signal.cc [deleted file]
sigc++/signal.h
sigc++/signal_base.cc
sigc++/signal_base.h
sigc++/trackable.cc
sigc++/trackable.h
sigc++/tuple-utils/tuple_cdr.h
sigc++/tuple-utils/tuple_end.h
sigc++/tuple-utils/tuple_for_each.h
sigc++/tuple-utils/tuple_start.h
sigc++/tuple-utils/tuple_transform_each.h
sigc++/type_traits.h
sigc++/visit_each.h
tests/test_accum_iter.cc
tests/test_accumulated.cc
tests/test_bind.cc
tests/test_bind_as_slot.cc
tests/test_bind_ref.cc
tests/test_bind_refptr.cc
tests/test_bind_return.cc
tests/test_compose.cc
tests/test_copy_invalid_slot.cc
tests/test_cpp11_lambda.cc
tests/test_custom.cc
tests/test_disconnect.cc
tests/test_disconnect_during_emit.cc
tests/test_exception_catch.cc
tests/test_functor_trait.cc
tests/test_hide.cc
tests/test_limit_reference.cc
tests/test_mem_fun.cc
tests/test_member_method_trait.cc
tests/test_ptr_fun.cc
tests/test_retype.cc
tests/test_retype_return.cc
tests/test_signal.cc
tests/test_signal_move.cc
tests/test_size.cc
tests/test_slot.cc
tests/test_slot_disconnect.cc
tests/test_slot_move.cc
tests/test_track_obj.cc
tests/test_trackable.cc
tests/test_trackable_move.cc
tests/test_tuple_cdr.cc
tests/test_tuple_end.cc
tests/test_tuple_for_each.cc
tests/test_tuple_start.cc
tests/test_tuple_transform_each.cc
tests/test_visit_each.cc
tests/testutilities.cc
tests/testutilities.h

index e7ebb64..02ade12 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,186 @@
+2016-04-08  Murray Cumming  <murrayc@murrayc.com>
+
+       2.99.4
+
+2016-04-08  Murray Cumming  <murrayc@murrayc.com>
+
+       2.99.4
+
+2016-04-01  Murray Cumming  <murrayc@murrayc.com>
+
+       C++11: Small uses of auto.
+
+2016-04-01  Murray Cumming  <murrayc@murrayc.com>
+
+       C++11: slot: Use = default for simple copy constructor.
+
+       With help from clang-tidy, like so:
+       clang-tidy-3.8 -fix --checks=modernize-use-default --header-filter=.*  `find . -name "*.cc"`
+       after using "bear make all check".
+
+2016-04-01  Murray Cumming  <murrayc@murrayc.com>
+
+       C++11: Use = default for simple default constructors.
+
+       With help from clang-tidy, like so:
+       clang-tidy-3.8 -fix --checks=modernize-use-default --header-filter=.*  `find . -name "*.cc"`
+       after using "bear make all check".
+
+2016-04-01  Murray Cumming  <murrayc@murrayc.com>
+
+       signal: Use a range-based for() loop.
+
+2016-04-01  Murray Cumming  <murrayc@murrayc.com>
+
+       Use of auto instead of mentioning iterator types.
+
+2016-04-01  Murray Cumming  <murrayc@murrayc.com>
+
+       trackable.cc: Use auto instead of specifying iterator type.
+
+2016-04-01  Murray Cumming  <murrayc@murrayc.com>
+
+       Revert "tuple tests: Use static_assert() in constexpr tests."
+
+       This reverts commit 798210eeaedd88477b71115423b1d7928e81138f.
+
+       Because this doesn't work with g++ (at least version 5.2.1)
+       though it does work with clang++ (3.8).
+
+       g++ gives this error:
+
+       test_tuple_start.cc: In function ‘constexpr void test_tuple_start_constexpr()’:
+       test_tuple_start.cc:130:3: error: non-constant condition for static assertion
+       static_assert(std::get<0>(t_prefix) == nullptr,
+       ^
+       test_tuple_start.cc:130:3: error: ‘nullptr’ is not a constant expression
+
+2016-04-01  Murray Cumming  <murrayc@murrayc.com>
+
+       tuple tests: Use static_assert() in constexpr tests.
+
+2016-04-01  Murray Cumming  <murrayc@murrayc.com>
+
+       limit_derived_target: Make constructors explicit.
+
+       Found by cppcheck.
+
+2016-04-01  Murray Cumming  <murrayc@murrayc.com>
+
+       slot_do_bind/unbind: Make constructors explicit.
+
+       Found by cppcheck.
+
+2016-04-01  Murray Cumming  <murrayc@murrayc.com>
+
+       Remove unnecessary signal.cc file.
+
+2016-04-01  Murray Cumming  <murrayc@murrayc.com>
+
+       Remove unnecessary slot.cc file.
+
+2016-04-01  Murray Cumming  <murrayc@murrayc.com>
+
+       docs: ptr_fun: Improve the simple description.
+
+2016-04-01  Murray Cumming  <murrayc@murrayc.com>
+
+       docs: slots: Fix tiny typo.
+
+2016-04-01  Murray Cumming  <murrayc@murrayc.com>
+
+       docs: mem_fun: Improve the simple description.
+
+2016-04-01  Murray Cumming  <murrayc@murrayc.com>
+
+       docs: mem_fun: Improve the note about auto-disconnection.
+
+       Because "cleared" doesn't really tell us how this benefits us.
+
+2016-04-01  Murray Cumming  <murrayc@murrayc.com>
+
+       docs: slots: Mention automatic disconnection.
+
+2016-04-01  Murray Cumming  <murrayc@murrayc.com>
+
+       docs: slots: auto: Mention why it is bad.
+
+2016-04-01  Murray Cumming  <murrayc@murrayc.com>
+
+       test_mem_fun: Test auto-disconnection with trackable.
+
+       This is probably tested somewhere else already, but I like having it
+       here too because it is an important reason for slot<> to exist,
+       compared to a simple std::function.
+
+2016-04-01  Murray Cumming  <murrayc@murrayc.com>
+
+       test_mem_fun: Rearrange into individual test functions.
+
+2016-04-01  Murray Cumming  <murrayc@murrayc.com>
+
+       docs: Slots: Add section titles to break it up.
+
+2016-04-01  Murray Cumming  <murrayc@murrayc.com>
+
+       Remove now-useless SIGC_FUNCTORS_DEDUCE_RESULT_TYPE_WITH_DECLTYPE.
+
+2016-04-01  Murray Cumming  <murrayc@murrayc.com>
+
+       Docs: Remove unnecessary Scope of Documentation paragraph.
+
+2016-04-01  Murray Cumming  <murrayc@murrayc.com>
+
+       Some perfect-forwarding.
+
+2016-04-01  Murray Cumming  <murrayc@murrayc.com>
+
+       limit_derived_target: Use perfect forwarding.
+
+2016-04-01  Murray Cumming  <murrayc@murrayc.com>
+
+       visit_each.h: Add and use is_base_of_or_same_v to avoid duplication.
+
+2016-03-31  Murray Cumming  <murrayc@murrayc.com>
+
+       Use {} with multiline while() blocks.
+
+2016-03-31  Murray Cumming  <murrayc@murrayc.com>
+
+       Use {} with multiline for() blocks.
+
+2016-03-31  Murray Cumming  <murrayc@murrayc.com>
+
+       Rearrange another comment.
+
+2016-03-31  Murray Cumming  <murrayc@murrayc.com>
+
+       Make a comment easier to reformat with clang-format.
+
+2016-03-30  Murray Cumming  <murrayc@murrayc.com>
+
+       slot_base: Make _dup private and _destroy protected.
+
+2016-03-30  Murray Cumming  <murrayc@murrayc.com>
+
+       signal_base/signal_exec: Make some member data protected.wq
+
+2016-03-30  Murray Cumming  <murrayc@murrayc.com>
+
+       slot_list: Make list_ private, not protected.
+
+2016-03-30  Murray Cumming  <murrayc@murrayc.com>
+
+       Reformat .h files with clang-format.
+
+2016-03-30  Murray Cumming  <murrayc@murrayc.com>
+
+       Reformat .cc files with clang-format.
+
+2016-03-30  Murray Cumming  <murrayc@murrayc.com>
+
+       Add .clang-format file and reformat tests and examples.
+
 2016-03-18  Murray Cumming  <murrayc@murrayc.com>
 
        2.99.3
index 58ce26b..0a3d116 100644 (file)
@@ -7,7 +7,7 @@
 #define SIGCXX_MAJOR_VERSION 2
 
 /* Micro version number of sigc++. */
-#define SIGCXX_MICRO_VERSION 3
+#define SIGCXX_MICRO_VERSION 4
 
 /* Minor version number of sigc++. */
 #define SIGCXX_MINOR_VERSION 99
index 66669e3..ca7fd50 100644 (file)
@@ -2,8 +2,8 @@
 #include <winver.h>
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 2,99,3,1
- PRODUCTVERSION 2,99,3,1
+ FILEVERSION 2,99,4,1
+ PRODUCTVERSION 2,99,4,1
  FILEFLAGSMASK 0
  FILEFLAGS 0x0L
  FILEOS VOS__WINDOWS32
@@ -16,11 +16,11 @@ BEGIN
         BEGIN
             VALUE "CompanyName", "The libsigc++ development team (see AUTHORS)"
             VALUE "FileDescription", "The Typesafe Callback Framework for C++"
-            VALUE "FileVersion", "2.99.3"
+            VALUE "FileVersion", "2.99.4"
             VALUE "LegalCopyright", "Distribution is under the LGPL (see COPYING)"
             VALUE "OriginalFilename", "sigc-3.0.dll"
             VALUE "ProductName", "libsigc++"
-            VALUE "ProductVersion", "2.99.3"
+            VALUE "ProductVersion", "2.99.4"
         END
     END
     BLOCK "VarFileInfo"
index 803cc51..a40339f 100644 (file)
@@ -211,8 +211,8 @@ am__DIST_COMMON = $(srcdir)/MSVC_Net2013/filelist.am \
        $(top_srcdir)/build/missing \
        $(top_srcdir)/docs/reference/Doxyfile.in AUTHORS COPYING \
        ChangeLog INSTALL NEWS README build/compile build/config.guess \
-       build/config.sub build/install-sh build/ltmain.sh \
-       build/missing
+       build/config.sub build/depcomp build/install-sh \
+       build/ltmain.sh build/missing
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 distdir = $(PACKAGE)-$(VERSION)
 top_distdir = $(distdir)
diff --git a/NEWS b/NEWS
index 9bd1a9a..272767e 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,16 @@
+2.99.4 (unstable):
+
+* Minor documentation improvements.
+  (Murray Cumming)
+* Make some constructors explicit.
+  (Murray Cumming)
+* Some more minor uses of C++11 syntax.
+  (Murray Cumming)
+* Remove unused SIGC_FUNCTORS_DEDUCE_RESULT_TYPE_WITH_DECLTYPE.
+  (Murray Cumming)
+* Reformat code with clang-format.
+  (Murray Cumming)
+
 2.99.3 (unstable):
 
 * Correct the license of some header files from GPL to LGPL.
index d583841..5998ffd 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for libsigc++ 2.99.3.
+# Generated by GNU Autoconf 2.69 for libsigc++ 2.99.4.
 #
 # Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=libsigc%2B%2B>.
 #
@@ -591,8 +591,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='libsigc++'
 PACKAGE_TARNAME='libsigc++'
-PACKAGE_VERSION='2.99.3'
-PACKAGE_STRING='libsigc++ 2.99.3'
+PACKAGE_VERSION='2.99.4'
+PACKAGE_STRING='libsigc++ 2.99.4'
 PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=libsigc%2B%2B'
 PACKAGE_URL='http://libsigc.sourceforge.net/'
 
@@ -1364,7 +1364,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures libsigc++ 2.99.3 to adapt to many kinds of systems.
+\`configure' configures libsigc++ 2.99.4 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1434,7 +1434,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libsigc++ 2.99.3:";;
+     short | recursive ) echo "Configuration of libsigc++ 2.99.4:";;
    esac
   cat <<\_ACEOF
 
@@ -1564,7 +1564,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libsigc++ configure 2.99.3
+libsigc++ configure 2.99.4
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1963,7 +1963,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by libsigc++ $as_me 2.99.3, which was
+It was created by libsigc++ $as_me 2.99.4, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2833,7 +2833,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='libsigc++'
- VERSION='2.99.3'
+ VERSION='2.99.4'
 
 
 # Some tools Automake needs.
@@ -3124,7 +3124,7 @@ fi
 
 SIGCXX_MODULE_NAME='sigc++-3.0'
 
-SIGCXX_VERSION='2.99.3'
+SIGCXX_VERSION='2.99.4'
 
 SIGCXX_API_VERSION='3.0'
 
@@ -3138,10 +3138,10 @@ SIGCXX_MINOR_VERSION=99
 
 $as_echo "#define SIGCXX_MINOR_VERSION 99" >>confdefs.h
 
-SIGCXX_MICRO_VERSION=3
+SIGCXX_MICRO_VERSION=4
 
 
-$as_echo "#define SIGCXX_MICRO_VERSION 3" >>confdefs.h
+$as_echo "#define SIGCXX_MICRO_VERSION 4" >>confdefs.h
 
 
 MMDOCTOOLDIR='${top_srcdir}/docs'
@@ -17662,7 +17662,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by libsigc++ $as_me 2.99.3, which was
+This file was extended by libsigc++ $as_me 2.99.4, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -17729,7 +17729,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-libsigc++ config.status 2.99.3
+libsigc++ config.status 2.99.4
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
index c87e53f..79ff088 100644 (file)
@@ -15,7 +15,7 @@
 ## You should have received a copy of the GNU Lesser General Public License
 ## along with this library.  If not, see <http://www.gnu.org/licenses/>.
 
-AC_INIT([libsigc++], [2.99.3],
+AC_INIT([libsigc++], [2.99.4],
         [http://bugzilla.gnome.org/enter_bug.cgi?product=libsigc%2B%2B],
         [libsigc++], [http://libsigc.sourceforge.net/])
 AC_PREREQ([2.59])
index 9f07094..951231a 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 1. Introduction</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="libsigc++"><link rel="up" href="index.html" title="libsigc++"><link rel="prev" href="index.html" title="libsigc++"><link rel="next" href="ch02.html" title="Chapter 2. Connecting your code to signals"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 1. Introduction</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch02.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="sec-introduction"></a>Chapter 1. Introduction</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="sect1"><a href="ch01.html#idm45235360297488">Motivation</a></span></dt></dl></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm45235360297488"></a>Motivation</h2></div></div></div><p>There are many situations in which it is desirable to decouple code that
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 1. Introduction</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="libsigc++"><link rel="up" href="index.html" title="libsigc++"><link rel="prev" href="index.html" title="libsigc++"><link rel="next" href="ch02.html" title="Chapter 2. Connecting your code to signals"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 1. Introduction</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch02.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="sec-introduction"></a>Chapter 1. Introduction</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="sect1"><a href="ch01.html#idm46061143350384">Motivation</a></span></dt></dl></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm46061143350384"></a>Motivation</h2></div></div></div><p>There are many situations in which it is desirable to decouple code that
        detects an event, and the code that deals with it. This is especially common in
        GUI programming, where a toolkit might provide user interface elements such as
        clickable buttons but, being a generic toolkit, doesn't know how an individual
index a3dc95e..1b137c5 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 2. Connecting your code to signals</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="libsigc++"><link rel="up" href="index.html" title="libsigc++"><link rel="prev" href="ch01.html" title="Chapter 1. Introduction"><link rel="next" href="ch02s02.html" title="Using a member function"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 2. Connecting your code to signals</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch01.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch02s02.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="sec-connecting"></a>Chapter 2. Connecting your code to signals</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="sect1"><a href="ch02.html#idm45235359258704">A simple example</a></span></dt><dt><span class="sect1"><a href="ch02s02.html">Using a member function</a></span></dt><dt><span class="sect1"><a href="ch02s03.html">Signals with parameters</a></span></dt><dt><span class="sect1"><a href="ch02s04.html">Disconnecting</a></span></dt></dl></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm45235359258704"></a>A simple example</h2></div></div></div><p>So to get some experience, lets look at a simple example...</p><p>Lets say you and I are writing an application which informs the user when
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 2. Connecting your code to signals</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="libsigc++"><link rel="up" href="index.html" title="libsigc++"><link rel="prev" href="ch01.html" title="Chapter 1. Introduction"><link rel="next" href="ch02s02.html" title="Using a member function"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 2. Connecting your code to signals</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch01.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch02s02.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="sec-connecting"></a>Chapter 2. Connecting your code to signals</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="sect1"><a href="ch02.html#idm46061143084032">A simple example</a></span></dt><dt><span class="sect1"><a href="ch02s02.html">Using a member function</a></span></dt><dt><span class="sect1"><a href="ch02s03.html">Signals with parameters</a></span></dt><dt><span class="sect1"><a href="ch02s04.html">Disconnecting</a></span></dt></dl></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm46061143084032"></a>A simple example</h2></div></div></div><p>So to get some experience, lets look at a simple example...</p><p>Lets say you and I are writing an application which informs the user when
        aliens land in the car park. To keep the design nice and clean, and allow for
        maximum portability to different interfaces, we decide to use libsigc++ to
        split the project in two parts.</p><p>I will write the <code class="literal">AlienDetector</code> class, and you will write the code to inform
index 2d5c171..3896942 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Using a member function</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="libsigc++"><link rel="up" href="ch02.html" title="Chapter 2. Connecting your code to signals"><link rel="prev" href="ch02.html" title="Chapter 2. Connecting your code to signals"><link rel="next" href="ch02s03.html" title="Signals with parameters"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Using a member function</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02.html">Prev</a> </td><th width="60%" align="center">Chapter 2. Connecting your code to signals</th><td width="20%" align="right"> <a accesskey="n" href="ch02s03.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm45235359244960"></a>Using a member function</h2></div></div></div><p>Suppose you found a more sophisticated alien alerter class on the web,
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Using a member function</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="libsigc++"><link rel="up" href="ch02.html" title="Chapter 2. Connecting your code to signals"><link rel="prev" href="ch02.html" title="Chapter 2. Connecting your code to signals"><link rel="next" href="ch02s03.html" title="Signals with parameters"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Using a member function</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02.html">Prev</a> </td><th width="60%" align="center">Chapter 2. Connecting your code to signals</th><td width="20%" align="right"> <a accesskey="n" href="ch02s03.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm46061141835424"></a>Using a member function</h2></div></div></div><p>Suppose you found a more sophisticated alien alerter class on the web,
        such as this:</p><pre class="programlisting">
 class AlienAlerter : public sigc::trackable
 {
index e024463..2782492 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Signals with parameters</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="libsigc++"><link rel="up" href="ch02.html" title="Chapter 2. Connecting your code to signals"><link rel="prev" href="ch02s02.html" title="Using a member function"><link rel="next" href="ch02s04.html" title="Disconnecting"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Signals with parameters</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s02.html">Prev</a> </td><th width="60%" align="center">Chapter 2. Connecting your code to signals</th><td width="20%" align="right"> <a accesskey="n" href="ch02s04.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm45235359239376"></a>Signals with parameters</h2></div></div></div><p>Functions taking no parameters and returning void are quite useful,
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Signals with parameters</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="libsigc++"><link rel="up" href="ch02.html" title="Chapter 2. Connecting your code to signals"><link rel="prev" href="ch02s02.html" title="Using a member function"><link rel="next" href="ch02s04.html" title="Disconnecting"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Signals with parameters</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s02.html">Prev</a> </td><th width="60%" align="center">Chapter 2. Connecting your code to signals</th><td width="20%" align="right"> <a accesskey="n" href="ch02s04.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm46061143408656"></a>Signals with parameters</h2></div></div></div><p>Functions taking no parameters and returning void are quite useful,
        especially when they're members of classes that can store unlimited amounts of
        safely typed data, but they're not sufficient for everything.</p><p>What if aliens don't land in the carpark, but somewhere else? Let's modify
        the example so that the callback function takes a <code class="literal">std::string</code> with the location
index e934802..5f30d6c 100644 (file)
@@ -1,3 +1,3 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Disconnecting</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="libsigc++"><link rel="up" href="ch02.html" title="Chapter 2. Connecting your code to signals"><link rel="prev" href="ch02s03.html" title="Signals with parameters"><link rel="next" href="ch03.html" title="Chapter 3. Writing your own signals"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Disconnecting</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s03.html">Prev</a> </td><th width="60%" align="center">Chapter 2. Connecting your code to signals</th><td width="20%" align="right"> <a accesskey="n" href="ch03.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm45235359229376"></a>Disconnecting</h2></div></div></div><p>If you decide you no longer want your code to be called whenever a signal is
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Disconnecting</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="libsigc++"><link rel="up" href="ch02.html" title="Chapter 2. Connecting your code to signals"><link rel="prev" href="ch02s03.html" title="Signals with parameters"><link rel="next" href="ch03.html" title="Chapter 3. Writing your own signals"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Disconnecting</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s03.html">Prev</a> </td><th width="60%" align="center">Chapter 2. Connecting your code to signals</th><td width="20%" align="right"> <a accesskey="n" href="ch03.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm46061143134128"></a>Disconnecting</h2></div></div></div><p>If you decide you no longer want your code to be called whenever a signal is
        emitted, you must remember the return value of <code class="literal">connect()</code>, which we've been
        ignoring until now.</p><p><code class="literal">connect()</code> returns a <code class="literal">sigc::connection</code> object, which has a <code class="literal">disconnect()</code> member method. This does just what you think it does.</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02s03.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch03.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Signals with parameters </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 3. Writing your own signals</td></tr></table></div></body></html>
index 5e41bdf..f5bcfdd 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 3. Writing your own signals</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="libsigc++"><link rel="up" href="index.html" title="libsigc++"><link rel="prev" href="ch02s04.html" title="Disconnecting"><link rel="next" href="ch03s02.html" title="What about return values?"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 3. Writing your own signals</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s04.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch03s02.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="sec-writing"></a>Chapter 3. Writing your own signals</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="sect1"><a href="ch03.html#idm45235359223360">Quick recap</a></span></dt><dt><span class="sect1"><a href="ch03s02.html">What about return values?</a></span></dt></dl></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm45235359223360"></a>Quick recap</h2></div></div></div><p>If all you want to do is use gtkmm, and connect your functionality to its
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 3. Writing your own signals</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="libsigc++"><link rel="up" href="index.html" title="libsigc++"><link rel="prev" href="ch02s04.html" title="Disconnecting"><link rel="next" href="ch03s02.html" title="What about return values?"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 3. Writing your own signals</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s04.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch03s02.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="sec-writing"></a>Chapter 3. Writing your own signals</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="sect1"><a href="ch03.html#idm46061143876096">Quick recap</a></span></dt><dt><span class="sect1"><a href="ch03s02.html">What about return values?</a></span></dt></dl></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm46061143876096"></a>Quick recap</h2></div></div></div><p>If all you want to do is use gtkmm, and connect your functionality to its
        signals, you can probably stop reading here.</p><p>You might benefit from reading on anyway though, as this section is going to
        be quite simple, and the 'Rebinding' technique from the next section is
        occasionally useful.</p><p>We've already covered the way the types of signals are made up, but lets
index 794241a..94be7e4 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>What about return values?</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="libsigc++"><link rel="up" href="ch03.html" title="Chapter 3. Writing your own signals"><link rel="prev" href="ch03.html" title="Chapter 3. Writing your own signals"><link rel="next" href="ch04.html" title="Chapter 4. Advanced topics"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">What about return values?</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch03.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Writing your own signals</th><td width="20%" align="right"> <a accesskey="n" href="ch04.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm45235359210320"></a>What about return values?</h2></div></div></div><p>If you only ever have one slot connected to a signal, or if you only care
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>What about return values?</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="libsigc++"><link rel="up" href="ch03.html" title="Chapter 3. Writing your own signals"><link rel="prev" href="ch03.html" title="Chapter 3. Writing your own signals"><link rel="next" href="ch04.html" title="Chapter 4. Advanced topics"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">What about return values?</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch03.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Writing your own signals</th><td width="20%" align="right"> <a accesskey="n" href="ch04.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm46061143862256"></a>What about return values?</h2></div></div></div><p>If you only ever have one slot connected to a signal, or if you only care
        about the return value of the last registered one, it's quite straightforward:</p><pre class="programlisting">
 sigc::signal&lt;int&gt; somesignal;
 int a_return_value;
index 418ab42..1e1919e 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 4. Advanced topics</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="libsigc++"><link rel="up" href="index.html" title="libsigc++"><link rel="prev" href="ch03s02.html" title="What about return values?"><link rel="next" href="ch04s02.html" title="Retyping"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 4. Advanced topics</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch03s02.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch04s02.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="sec-advanced"></a>Chapter 4. Advanced topics</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="sect1"><a href="ch04.html#idm45235359207152">Rebinding</a></span></dt><dt><span class="sect1"><a href="ch04s02.html">Retyping</a></span></dt></dl></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm45235359207152"></a>Rebinding</h2></div></div></div><p>Suppose you already have a function that you want to be called when a
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 4. Advanced topics</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="libsigc++"><link rel="up" href="index.html" title="libsigc++"><link rel="prev" href="ch03s02.html" title="What about return values?"><link rel="next" href="ch04s02.html" title="Retyping"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 4. Advanced topics</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch03s02.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch04s02.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="sec-advanced"></a>Chapter 4. Advanced topics</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="sect1"><a href="ch04.html#idm46061143858912">Rebinding</a></span></dt><dt><span class="sect1"><a href="ch04s02.html">Retyping</a></span></dt></dl></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm46061143858912"></a>Rebinding</h2></div></div></div><p>Suppose you already have a function that you want to be called when a
        signal is emitted, but it takes the wrong argument types. For example, lets try
        to attach the <code class="literal">warn_people(std::string)</code> function to the detected signal
        from the first example, which didn't supply a location string.</p><p>Just trying to connect it with:</p><pre class="programlisting">
index 77ff011..d81e696 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Retyping</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="libsigc++"><link rel="up" href="ch04.html" title="Chapter 4. Advanced topics"><link rel="prev" href="ch04.html" title="Chapter 4. Advanced topics"><link rel="next" href="ch05.html" title="Chapter 5. Reference"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Retyping</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch04.html">Prev</a> </td><th width="60%" align="center">Chapter 4. Advanced topics</th><td width="20%" align="right"> <a accesskey="n" href="ch05.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm45235359190352"></a>Retyping</h2></div></div></div><p>A similar topic is retyping. Perhaps you have a signal that takes an <code class="literal">int</code>, but
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Retyping</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="libsigc++"><link rel="up" href="ch04.html" title="Chapter 4. Advanced topics"><link rel="prev" href="ch04.html" title="Chapter 4. Advanced topics"><link rel="next" href="ch05.html" title="Chapter 5. Reference"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Retyping</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch04.html">Prev</a> </td><th width="60%" align="center">Chapter 4. Advanced topics</th><td width="20%" align="right"> <a accesskey="n" href="ch05.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idm46061141149088"></a>Retyping</h2></div></div></div><p>A similar topic is retyping. Perhaps you have a signal that takes an <code class="literal">int</code>, but
        you want to connect a function that takes a <code class="literal">double</code>.</p><p>This can be achieved with the <code class="literal">sigc::retype</code> template. <code class="literal">retype</code> has template arguments
        just like <code class="literal">sigc::signal</code> - return value, signal types.</p><p>It's a function template that takes a <code class="literal">sigc::slot</code>, and returns a <code class="literal">sigc::slot</code>. eg.</p><pre class="programlisting">
 void dostuff(double foo)
index 69cedfe..744ed46 100644 (file)
@@ -1 +1 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>libsigc++</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><meta name="description" content="libsigc++ is a C++ template library implementing typesafe callbacks. This is an intro to libsigc++."><link rel="home" href="index.html" title="libsigc++"><link rel="next" href="ch01.html" title="Chapter 1. Introduction"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">libsigc++</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch01.html">Next</a></td></tr></table><hr></div><div lang="en" class="book"><div class="titlepage"><div><div><h1 class="title"><a name="index"></a>libsigc++</h1></div><div><div class="author"><h3 class="author"><span class="firstname">Ainsley</span> <span class="surname">Pereira</span></h3></div></div><div><p class="pubdate">September 2002. Updated January 2004 and March 2016 by Murray Cumming</p></div><div><div class="abstract"><p class="title"><b>Abstract</b></p><p>libsigc++ is a C++ template library implementing typesafe callbacks. This is an intro to libsigc++.</p></div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="chapter"><a href="ch01.html">1. Introduction</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch01.html#idm45235360297488">Motivation</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch02.html">2. Connecting your code to signals</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch02.html#idm45235359258704">A simple example</a></span></dt><dt><span class="sect1"><a href="ch02s02.html">Using a member function</a></span></dt><dt><span class="sect1"><a href="ch02s03.html">Signals with parameters</a></span></dt><dt><span class="sect1"><a href="ch02s04.html">Disconnecting</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch03.html">3. Writing your own signals</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch03.html#idm45235359223360">Quick recap</a></span></dt><dt><span class="sect1"><a href="ch03s02.html">What about return values?</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch04.html">4. Advanced topics</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch04.html#idm45235359207152">Rebinding</a></span></dt><dt><span class="sect1"><a href="ch04s02.html">Retyping</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch05.html">5. Reference</a></span></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="ch01.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"> </td><td width="40%" align="right" valign="top"> Chapter 1. Introduction</td></tr></table></div></body></html>
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>libsigc++</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><meta name="description" content="libsigc++ is a C++ template library implementing typesafe callbacks. This is an intro to libsigc++."><link rel="home" href="index.html" title="libsigc++"><link rel="next" href="ch01.html" title="Chapter 1. Introduction"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">libsigc++</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch01.html">Next</a></td></tr></table><hr></div><div lang="en" class="book"><div class="titlepage"><div><div><h1 class="title"><a name="index"></a>libsigc++</h1></div><div><div class="author"><h3 class="author"><span class="firstname">Ainsley</span> <span class="surname">Pereira</span></h3></div></div><div><p class="pubdate">September 2002. Updated January 2004 and March 2016 by Murray Cumming</p></div><div><div class="abstract"><p class="title"><b>Abstract</b></p><p>libsigc++ is a C++ template library implementing typesafe callbacks. This is an intro to libsigc++.</p></div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="chapter"><a href="ch01.html">1. Introduction</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch01.html#idm46061143350384">Motivation</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch02.html">2. Connecting your code to signals</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch02.html#idm46061143084032">A simple example</a></span></dt><dt><span class="sect1"><a href="ch02s02.html">Using a member function</a></span></dt><dt><span class="sect1"><a href="ch02s03.html">Signals with parameters</a></span></dt><dt><span class="sect1"><a href="ch02s04.html">Disconnecting</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch03.html">3. Writing your own signals</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch03.html#idm46061143876096">Quick recap</a></span></dt><dt><span class="sect1"><a href="ch03s02.html">What about return values?</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch04.html">4. Advanced topics</a></span></dt><dd><dl><dt><span class="sect1"><a href="ch04.html#idm46061143858912">Rebinding</a></span></dt><dt><span class="sect1"><a href="ch04s02.html">Retyping</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch05.html">5. Reference</a></span></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="ch01.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"> </td><td width="40%" align="right" valign="top"> Chapter 1. Introduction</td></tr></table></div></body></html>
index 5caf9b6..ae5bd18 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 7ceb291..e62251b 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 780c66e..2f1164c 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -64,7 +64,7 @@
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 2932b64..b68b7a5 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -181,7 +181,7 @@ template &lt;class T_type&gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index ddb2d48..d3be462 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -64,7 +64,7 @@
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index e718fb0..dfd7471 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -177,7 +177,7 @@ template &lt;class T_wrapped &gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 5bc2ab7..1630b5c 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -179,7 +179,7 @@ template &lt;class T_wrapped &gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 5aac4da..5ebad97 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
   <tr><td class="entry"><a class="el" href="classsigc_1_1mem__functor.html#a47fa96e26ce1f3f4fd056342b76f90f6">mem_functor</a>()</td><td class="entry"><a class="el" href="classsigc_1_1mem__functor.html">sigc::mem_functor&lt; T_func, T_arg...&gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classsigc_1_1mem__functor.html#a2b8837c0a6b94fc93386be6ec4cee914">mem_functor</a>(function_type _A_func)</td><td class="entry"><a class="el" href="classsigc_1_1mem__functor.html">sigc::mem_functor&lt; T_func, T_arg...&gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span><span class="mlabel">private</span></td></tr>
   <tr><td class="entry"><a class="el" href="classsigc_1_1bound__mem__functor.html#a634f14739f5639cbba81c0fec28303b3">obj_</a></td><td class="entry"><a class="el" href="classsigc_1_1bound__mem__functor.html">sigc::bound_mem_functor&lt; T_func, T_arg &gt;</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classsigc_1_1bound__mem__functor.html#abb9c367edb9d7e8d475ebf1690d079d6">obj_type_with_modifier</a> typedef</td><td class="entry"><a class="el" href="classsigc_1_1bound__mem__functor.html">sigc::bound_mem_functor&lt; T_func, T_arg &gt;</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classsigc_1_1bound__mem__functor.html#a66a253cef347ec5ee52a28443b73768a">obj_type_with_modifier</a> typedef</td><td class="entry"><a class="el" href="classsigc_1_1bound__mem__functor.html">sigc::bound_mem_functor&lt; T_func, T_arg &gt;</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classsigc_1_1bound__mem__functor.html#a6cff1d1d709688fed710b40ce96c6eca">object_type</a> typedef</td><td class="entry"><a class="el" href="classsigc_1_1bound__mem__functor.html">sigc::bound_mem_functor&lt; T_func, T_arg &gt;</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classsigc_1_1bound__mem__functor.html#aa4a72f4d8769468ae4684ff78b80c8a3">operator()</a>(type_trait_take_t&lt; T_arg &gt;..._A_a) const </td><td class="entry"><a class="el" href="classsigc_1_1bound__mem__functor.html">sigc::bound_mem_functor&lt; T_func, T_arg &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr><td class="entry"><a class="el" href="classsigc_1_1mem__functor.html#a6c693e5fe68361bda05a866a0962d301">mem_functor&lt; T_func, T_arg...&gt;::operator()</a>(obj_type_with_modifier&amp; _A_obj, type_trait_take_t&lt; T_arg &gt;..._A_a) const</td><td class="entry"><a class="el" href="classsigc_1_1mem__functor.html">sigc::mem_functor&lt; T_func, T_arg...&gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classsigc_1_1bound__mem__functor.html#a6e3829edf337389a0427ffff403838a8">result_type</a> typedef</td><td class="entry"><a class="el" href="classsigc_1_1bound__mem__functor.html">sigc::bound_mem_functor&lt; T_func, T_arg &gt;</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classsigc_1_1bound__mem__functor.html#a5f9c4408bf79f18f6531df98c2dbfac1">T_limit_reference</a> typedef</td><td class="entry"><a class="el" href="classsigc_1_1bound__mem__functor.html">sigc::bound_mem_functor&lt; T_func, T_arg &gt;</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classsigc_1_1bound__mem__functor.html#ab878d0a58673014fb989e75777a1f11d">T_limit_reference</a> typedef</td><td class="entry"><a class="el" href="classsigc_1_1bound__mem__functor.html">sigc::bound_mem_functor&lt; T_func, T_arg &gt;</a></td><td class="entry"></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index edcb570..dd55adb 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -74,18 +74,18 @@ Inheritance diagram for sigc::bound_mem_functor&lt; T_func, T_arg &gt;:</div>
 Public Types</h2></td></tr>
 <tr class="memitem:a872b1c05e93574f6b4fea719dd84562b"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__mem__functor.html#a872b1c05e93574f6b4fea719dd84562b">function_type</a> = typename <a class="el" href="classsigc_1_1mem__functor.html#a15a8ea02f1ffc3875b06fe24afe0c716">base_type::function_type</a></td></tr>
 <tr class="separator:a872b1c05e93574f6b4fea719dd84562b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:abb9c367edb9d7e8d475ebf1690d079d6"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__mem__functor.html#abb9c367edb9d7e8d475ebf1690d079d6">obj_type_with_modifier</a> = typename std::conditional_t&lt; internal::member_method_is_const&lt; T_func &gt;::value, const <a class="el" href="classsigc_1_1bound__mem__functor.html#a6cff1d1d709688fed710b40ce96c6eca">object_type</a>, <a class="el" href="classsigc_1_1bound__mem__functor.html#a6cff1d1d709688fed710b40ce96c6eca">object_type</a> &gt;</td></tr>
-<tr class="separator:abb9c367edb9d7e8d475ebf1690d079d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a66a253cef347ec5ee52a28443b73768a"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__mem__functor.html#a66a253cef347ec5ee52a28443b73768a">obj_type_with_modifier</a> = typename std::conditional_t&lt; internal::member_method_is_const&lt; T_func &gt;::value, const <a class="el" href="classsigc_1_1bound__mem__functor.html#a6cff1d1d709688fed710b40ce96c6eca">object_type</a>, <a class="el" href="classsigc_1_1bound__mem__functor.html#a6cff1d1d709688fed710b40ce96c6eca">object_type</a> &gt;</td></tr>
+<tr class="separator:a66a253cef347ec5ee52a28443b73768a"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a6cff1d1d709688fed710b40ce96c6eca"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__mem__functor.html#a6cff1d1d709688fed710b40ce96c6eca">object_type</a> = typename <a class="el" href="classsigc_1_1mem__functor.html#a66ce968499f60275c30feea623a5fa5b">base_type::object_type</a></td></tr>
 <tr class="separator:a6cff1d1d709688fed710b40ce96c6eca"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a6e3829edf337389a0427ffff403838a8"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__mem__functor.html#a6e3829edf337389a0427ffff403838a8">result_type</a> = typename <a class="el" href="classsigc_1_1mem__functor.html#ab35ca512321bab23d281672bae70f2e4">base_type::result_type</a></td></tr>
 <tr class="separator:a6e3829edf337389a0427ffff403838a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5f9c4408bf79f18f6531df98c2dbfac1"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__mem__functor.html#a5f9c4408bf79f18f6531df98c2dbfac1">T_limit_reference</a> = typename std::conditional_t&lt; internal::member_method_is_const&lt; T_func &gt;::value, <a class="el" href="classsigc_1_1limit__reference.html">limit_reference</a>&lt; const <a class="el" href="classsigc_1_1bound__mem__functor.html#a6cff1d1d709688fed710b40ce96c6eca">object_type</a> &gt;, <a class="el" href="classsigc_1_1limit__reference.html">limit_reference</a>&lt; <a class="el" href="classsigc_1_1bound__mem__functor.html#a6cff1d1d709688fed710b40ce96c6eca">object_type</a> &gt;&gt;</td></tr>
-<tr class="separator:a5f9c4408bf79f18f6531df98c2dbfac1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab878d0a58673014fb989e75777a1f11d"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__mem__functor.html#ab878d0a58673014fb989e75777a1f11d">T_limit_reference</a> = typename std::conditional_t&lt; internal::member_method_is_const&lt; T_func &gt;::value, <a class="el" href="classsigc_1_1limit__reference.html">limit_reference</a>&lt; const <a class="el" href="classsigc_1_1bound__mem__functor.html#a6cff1d1d709688fed710b40ce96c6eca">object_type</a> &gt;, <a class="el" href="classsigc_1_1limit__reference.html">limit_reference</a>&lt; <a class="el" href="classsigc_1_1bound__mem__functor.html#a6cff1d1d709688fed710b40ce96c6eca">object_type</a> &gt;&gt;</td></tr>
+<tr class="separator:ab878d0a58673014fb989e75777a1f11d"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:abf0f84db2b1fd9268432e853667937d9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__mem__functor.html#abf0f84db2b1fd9268432e853667937d9">bound_mem_functor</a> (<a class="el" href="classsigc_1_1bound__mem__functor.html#abb9c367edb9d7e8d475ebf1690d079d6">obj_type_with_modifier</a>&amp; _A_obj, <a class="el" href="classsigc_1_1bound__mem__functor.html#a872b1c05e93574f6b4fea719dd84562b">function_type</a> _A_func)</td></tr>
+<tr class="memitem:abf0f84db2b1fd9268432e853667937d9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__mem__functor.html#abf0f84db2b1fd9268432e853667937d9">bound_mem_functor</a> (<a class="el" href="classsigc_1_1bound__mem__functor.html#a66a253cef347ec5ee52a28443b73768a">obj_type_with_modifier</a>&amp; _A_obj, <a class="el" href="classsigc_1_1bound__mem__functor.html#a872b1c05e93574f6b4fea719dd84562b">function_type</a> _A_func)</td></tr>
 <tr class="memdesc:abf0f84db2b1fd9268432e853667937d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a <a class="el" href="classsigc_1_1bound__mem__functor.html">bound_mem_functor</a> object that wraps the passed method.  <a href="#abf0f84db2b1fd9268432e853667937d9">More...</a><br /></td></tr>
 <tr class="separator:abf0f84db2b1fd9268432e853667937d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:aa4a72f4d8769468ae4684ff78b80c8a3"><td class="memItemLeft" align="right" valign="top">decltype(auto)&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__mem__functor.html#aa4a72f4d8769468ae4684ff78b80c8a3">operator()</a> (<a class="el" href="namespacesigc.html#aa0d56c61023af35c47b79db80b32fd2e">type_trait_take_t</a>&lt; T_arg &gt;..._A_a) const </td></tr>
@@ -94,7 +94,7 @@ Public Member Functions</h2></td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
 Public Attributes</h2></td></tr>
-<tr class="memitem:a634f14739f5639cbba81c0fec28303b3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classsigc_1_1bound__mem__functor.html#a5f9c4408bf79f18f6531df98c2dbfac1">T_limit_reference</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__mem__functor.html#a634f14739f5639cbba81c0fec28303b3">obj_</a></td></tr>
+<tr class="memitem:a634f14739f5639cbba81c0fec28303b3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classsigc_1_1bound__mem__functor.html#ab878d0a58673014fb989e75777a1f11d">T_limit_reference</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1bound__mem__functor.html#a634f14739f5639cbba81c0fec28303b3">obj_</a></td></tr>
 <tr class="separator:a634f14739f5639cbba81c0fec28303b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <h2 class="groupheader">Member Typedef Documentation</h2>
@@ -112,14 +112,14 @@ template &lt;class T_func , class... T_arg&gt; </div>
 
 </div>
 </div>
-<a class="anchor" id="abb9c367edb9d7e8d475ebf1690d079d6"></a>
+<a class="anchor" id="a66a253cef347ec5ee52a28443b73768a"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template &lt;class T_func , class... T_arg&gt; </div>
       <table class="memname">
         <tr>
-          <td class="memname">using <a class="el" href="classsigc_1_1bound__mem__functor.html">sigc::bound_mem_functor</a>&lt; T_func, T_arg &gt;::<a class="el" href="classsigc_1_1bound__mem__functor.html#abb9c367edb9d7e8d475ebf1690d079d6">obj_type_with_modifier</a> =  typename std::conditional_t&lt; internal::member_method_is_const&lt;T_func&gt;::value, const <a class="el" href="classsigc_1_1bound__mem__functor.html#a6cff1d1d709688fed710b40ce96c6eca">object_type</a>, <a class="el" href="classsigc_1_1bound__mem__functor.html#a6cff1d1d709688fed710b40ce96c6eca">object_type</a>&gt;</td>
+          <td class="memname">using <a class="el" href="classsigc_1_1bound__mem__functor.html">sigc::bound_mem_functor</a>&lt; T_func, T_arg &gt;::<a class="el" href="classsigc_1_1bound__mem__functor.html#a66a253cef347ec5ee52a28443b73768a">obj_type_with_modifier</a> =  typename std::conditional_t&lt;internal::member_method_is_const&lt;T_func&gt;::value, const <a class="el" href="classsigc_1_1bound__mem__functor.html#a6cff1d1d709688fed710b40ce96c6eca">object_type</a>, <a class="el" href="classsigc_1_1bound__mem__functor.html#a6cff1d1d709688fed710b40ce96c6eca">object_type</a>&gt;</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -154,14 +154,14 @@ template &lt;class T_func , class... T_arg&gt; </div>
 
 </div>
 </div>
-<a class="anchor" id="a5f9c4408bf79f18f6531df98c2dbfac1"></a>
+<a class="anchor" id="ab878d0a58673014fb989e75777a1f11d"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template &lt;class T_func , class... T_arg&gt; </div>
       <table class="memname">
         <tr>
-          <td class="memname">using <a class="el" href="classsigc_1_1bound__mem__functor.html">sigc::bound_mem_functor</a>&lt; T_func, T_arg &gt;::<a class="el" href="classsigc_1_1bound__mem__functor.html#a5f9c4408bf79f18f6531df98c2dbfac1">T_limit_reference</a> =  typename std::conditional_t&lt; internal::member_method_is_const&lt;T_func&gt;::value, <a class="el" href="classsigc_1_1limit__reference.html">limit_reference</a>&lt;const <a class="el" href="classsigc_1_1bound__mem__functor.html#a6cff1d1d709688fed710b40ce96c6eca">object_type</a>&gt;, <a class="el" href="classsigc_1_1limit__reference.html">limit_reference</a>&lt;<a class="el" href="classsigc_1_1bound__mem__functor.html#a6cff1d1d709688fed710b40ce96c6eca">object_type</a>&gt;&gt;</td>
+          <td class="memname">using <a class="el" href="classsigc_1_1bound__mem__functor.html">sigc::bound_mem_functor</a>&lt; T_func, T_arg &gt;::<a class="el" href="classsigc_1_1bound__mem__functor.html#ab878d0a58673014fb989e75777a1f11d">T_limit_reference</a> =  typename std::conditional_t&lt;internal::member_method_is_const&lt;T_func&gt;::value, <a class="el" href="classsigc_1_1limit__reference.html">limit_reference</a>&lt;const <a class="el" href="classsigc_1_1bound__mem__functor.html#a6cff1d1d709688fed710b40ce96c6eca">object_type</a>&gt;, <a class="el" href="classsigc_1_1limit__reference.html">limit_reference</a>&lt;<a class="el" href="classsigc_1_1bound__mem__functor.html#a6cff1d1d709688fed710b40ce96c6eca">object_type</a>&gt;&gt;</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -181,7 +181,7 @@ template &lt;class T_func , class... T_arg&gt; </div>
         <tr>
           <td class="memname"><a class="el" href="classsigc_1_1bound__mem__functor.html">sigc::bound_mem_functor</a>&lt; T_func, T_arg &gt;::<a class="el" href="classsigc_1_1bound__mem__functor.html">bound_mem_functor</a> </td>
           <td>(</td>
-          <td class="paramtype"><a class="el" href="classsigc_1_1bound__mem__functor.html#abb9c367edb9d7e8d475ebf1690d079d6">obj_type_with_modifier</a>&amp;&#160;</td>
+          <td class="paramtype"><a class="el" href="classsigc_1_1bound__mem__functor.html#a66a253cef347ec5ee52a28443b73768a">obj_type_with_modifier</a>&amp;&#160;</td>
           <td class="paramname"><em>_A_obj</em>, </td>
         </tr>
         <tr>
@@ -258,7 +258,7 @@ template &lt;class T_func , class... T_arg&gt; </div>
 template &lt;class T_func , class... T_arg&gt; </div>
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classsigc_1_1bound__mem__functor.html#a5f9c4408bf79f18f6531df98c2dbfac1">T_limit_reference</a> <a class="el" href="classsigc_1_1bound__mem__functor.html">sigc::bound_mem_functor</a>&lt; T_func, T_arg &gt;::obj_</td>
+          <td class="memname"><a class="el" href="classsigc_1_1bound__mem__functor.html#ab878d0a58673014fb989e75777a1f11d">T_limit_reference</a> <a class="el" href="classsigc_1_1bound__mem__functor.html">sigc::bound_mem_functor</a>&lt; T_func, T_arg &gt;::obj_</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -268,7 +268,7 @@ template &lt;class T_func , class... T_arg&gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 37054b6..85cffce 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -62,7 +62,7 @@
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 4674e5f..ae5b100 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -101,7 +101,7 @@ template &lt;typename T_functor &gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index fe6586a..d1451f2 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -65,7 +65,7 @@
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 91914a3..97ca657 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -204,7 +204,7 @@ template &lt;class T_type, bool I_derives_trackable = std::is_base_of&lt;trackab
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index b50c7da..0ccd203 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -65,7 +65,7 @@
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 0617b34..7dbe5c2 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -200,7 +200,7 @@ template &lt;class T_type &gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index bd80882..9b72358 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
   <tr><td class="entry"><a class="el" href="classsigc_1_1mem__functor.html#a15a8ea02f1ffc3875b06fe24afe0c716">function_type</a> typedef</td><td class="entry"><a class="el" href="classsigc_1_1mem__functor.html">sigc::mem_functor&lt; T_func, T_arg &gt;</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classsigc_1_1mem__functor.html#a47fa96e26ce1f3f4fd056342b76f90f6">mem_functor</a>()</td><td class="entry"><a class="el" href="classsigc_1_1mem__functor.html">sigc::mem_functor&lt; T_func, T_arg &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr><td class="entry"><a class="el" href="classsigc_1_1mem__functor.html#a2b8837c0a6b94fc93386be6ec4cee914">mem_functor</a>(function_type _A_func)</td><td class="entry"><a class="el" href="classsigc_1_1mem__functor.html">sigc::mem_functor&lt; T_func, T_arg &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classsigc_1_1mem__functor.html#a24ef71042d8feaed869706c6d3236256">obj_type_with_modifier</a> typedef</td><td class="entry"><a class="el" href="classsigc_1_1mem__functor.html">sigc::mem_functor&lt; T_func, T_arg &gt;</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classsigc_1_1mem__functor.html#af1e0eb58e6f96e48e8660dcb96e7a1fd">obj_type_with_modifier</a> typedef</td><td class="entry"><a class="el" href="classsigc_1_1mem__functor.html">sigc::mem_functor&lt; T_func, T_arg &gt;</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classsigc_1_1mem__functor.html#a66ce968499f60275c30feea623a5fa5b">object_type</a> typedef</td><td class="entry"><a class="el" href="classsigc_1_1mem__functor.html">sigc::mem_functor&lt; T_func, T_arg &gt;</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classsigc_1_1mem__functor.html#a6c693e5fe68361bda05a866a0962d301">operator()</a>(obj_type_with_modifier&amp; _A_obj, type_trait_take_t&lt; T_arg &gt;..._A_a) const </td><td class="entry"><a class="el" href="classsigc_1_1mem__functor.html">sigc::mem_functor&lt; T_func, T_arg &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr><td class="entry"><a class="el" href="classsigc_1_1mem__functor.html#ab35ca512321bab23d281672bae70f2e4">result_type</a> typedef</td><td class="entry"><a class="el" href="classsigc_1_1mem__functor.html">sigc::mem_functor&lt; T_func, T_arg &gt;</a></td><td class="entry"></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 49df0fd..987935f 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -74,8 +74,8 @@ Inheritance diagram for sigc::mem_functor&lt; T_func, T_arg &gt;:</div>
 Public Types</h2></td></tr>
 <tr class="memitem:a15a8ea02f1ffc3875b06fe24afe0c716"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1mem__functor.html#a15a8ea02f1ffc3875b06fe24afe0c716">function_type</a> = T_func</td></tr>
 <tr class="separator:a15a8ea02f1ffc3875b06fe24afe0c716"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a24ef71042d8feaed869706c6d3236256"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1mem__functor.html#a24ef71042d8feaed869706c6d3236256">obj_type_with_modifier</a> = typename std::conditional_t&lt; internal::member_method_is_const&lt; T_func &gt;::value, const <a class="el" href="classsigc_1_1mem__functor.html#a66ce968499f60275c30feea623a5fa5b">object_type</a>, <a class="el" href="classsigc_1_1mem__functor.html#a66ce968499f60275c30feea623a5fa5b">object_type</a> &gt;</td></tr>
-<tr class="separator:a24ef71042d8feaed869706c6d3236256"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af1e0eb58e6f96e48e8660dcb96e7a1fd"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1mem__functor.html#af1e0eb58e6f96e48e8660dcb96e7a1fd">obj_type_with_modifier</a> = typename std::conditional_t&lt; internal::member_method_is_const&lt; T_func &gt;::value, const <a class="el" href="classsigc_1_1mem__functor.html#a66ce968499f60275c30feea623a5fa5b">object_type</a>, <a class="el" href="classsigc_1_1mem__functor.html#a66ce968499f60275c30feea623a5fa5b">object_type</a> &gt;</td></tr>
+<tr class="separator:af1e0eb58e6f96e48e8660dcb96e7a1fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a66ce968499f60275c30feea623a5fa5b"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1mem__functor.html#a66ce968499f60275c30feea623a5fa5b">object_type</a> = typename internal::member_method_class&lt; T_func &gt;::type</td></tr>
 <tr class="separator:a66ce968499f60275c30feea623a5fa5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ab35ca512321bab23d281672bae70f2e4"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1mem__functor.html#ab35ca512321bab23d281672bae70f2e4">result_type</a> = typename internal::member_method_result&lt; T_func &gt;::type</td></tr>
@@ -89,7 +89,7 @@ Public Member Functions</h2></td></tr>
 <tr class="memitem:a2b8837c0a6b94fc93386be6ec4cee914"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1mem__functor.html#a2b8837c0a6b94fc93386be6ec4cee914">mem_functor</a> (<a class="el" href="classsigc_1_1mem__functor.html#a15a8ea02f1ffc3875b06fe24afe0c716">function_type</a> _A_func)</td></tr>
 <tr class="memdesc:a2b8837c0a6b94fc93386be6ec4cee914"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a <a class="el" href="classsigc_1_1mem__functor.html">mem_functor</a> object that wraps the passed method.  <a href="#a2b8837c0a6b94fc93386be6ec4cee914">More...</a><br /></td></tr>
 <tr class="separator:a2b8837c0a6b94fc93386be6ec4cee914"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6c693e5fe68361bda05a866a0962d301"><td class="memItemLeft" align="right" valign="top">decltype(auto)&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1mem__functor.html#a6c693e5fe68361bda05a866a0962d301">operator()</a> (<a class="el" href="classsigc_1_1mem__functor.html#a24ef71042d8feaed869706c6d3236256">obj_type_with_modifier</a>&amp; _A_obj, <a class="el" href="namespacesigc.html#aa0d56c61023af35c47b79db80b32fd2e">type_trait_take_t</a>&lt; T_arg &gt;..._A_a) const </td></tr>
+<tr class="memitem:a6c693e5fe68361bda05a866a0962d301"><td class="memItemLeft" align="right" valign="top">decltype(auto)&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1mem__functor.html#a6c693e5fe68361bda05a866a0962d301">operator()</a> (<a class="el" href="classsigc_1_1mem__functor.html#af1e0eb58e6f96e48e8660dcb96e7a1fd">obj_type_with_modifier</a>&amp; _A_obj, <a class="el" href="namespacesigc.html#aa0d56c61023af35c47b79db80b32fd2e">type_trait_take_t</a>&lt; T_arg &gt;..._A_a) const </td></tr>
 <tr class="memdesc:a6c693e5fe68361bda05a866a0962d301"><td class="mdescLeft">&#160;</td><td class="mdescRight">Execute the wrapped method operating on the passed instance.  <a href="#a6c693e5fe68361bda05a866a0962d301">More...</a><br /></td></tr>
 <tr class="separator:a6c693e5fe68361bda05a866a0962d301"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
@@ -113,14 +113,14 @@ template &lt;class T_func, class... T_arg&gt; </div>
 
 </div>
 </div>
-<a class="anchor" id="a24ef71042d8feaed869706c6d3236256"></a>
+<a class="anchor" id="af1e0eb58e6f96e48e8660dcb96e7a1fd"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template &lt;class T_func, class... T_arg&gt; </div>
       <table class="memname">
         <tr>
-          <td class="memname">using <a class="el" href="classsigc_1_1mem__functor.html">sigc::mem_functor</a>&lt; T_func, T_arg &gt;::<a class="el" href="classsigc_1_1mem__functor.html#a24ef71042d8feaed869706c6d3236256">obj_type_with_modifier</a> =  typename std::conditional_t&lt; internal::member_method_is_const&lt;T_func&gt;::value, const <a class="el" href="classsigc_1_1mem__functor.html#a66ce968499f60275c30feea623a5fa5b">object_type</a>, <a class="el" href="classsigc_1_1mem__functor.html#a66ce968499f60275c30feea623a5fa5b">object_type</a>&gt;</td>
+          <td class="memname">using <a class="el" href="classsigc_1_1mem__functor.html">sigc::mem_functor</a>&lt; T_func, T_arg &gt;::<a class="el" href="classsigc_1_1mem__functor.html#af1e0eb58e6f96e48e8660dcb96e7a1fd">obj_type_with_modifier</a> =  typename std::conditional_t&lt;internal::member_method_is_const&lt;T_func&gt;::value, const <a class="el" href="classsigc_1_1mem__functor.html#a66ce968499f60275c30feea623a5fa5b">object_type</a>, <a class="el" href="classsigc_1_1mem__functor.html#a66ce968499f60275c30feea623a5fa5b">object_type</a>&gt;</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -230,7 +230,7 @@ template &lt;class T_func, class... T_arg&gt; </div>
         <tr>
           <td class="memname">decltype(auto) <a class="el" href="classsigc_1_1mem__functor.html">sigc::mem_functor</a>&lt; T_func, T_arg &gt;::operator() </td>
           <td>(</td>
-          <td class="paramtype"><a class="el" href="classsigc_1_1mem__functor.html#a24ef71042d8feaed869706c6d3236256">obj_type_with_modifier</a>&amp;&#160;</td>
+          <td class="paramtype"><a class="el" href="classsigc_1_1mem__functor.html#af1e0eb58e6f96e48e8660dcb96e7a1fd">obj_type_with_modifier</a>&amp;&#160;</td>
           <td class="paramname"><em>_A_obj</em>, </td>
         </tr>
         <tr>
@@ -290,7 +290,7 @@ template &lt;class T_func, class... T_arg&gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 8dacf26..829257d 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -73,7 +73,7 @@ class sigc::pointer_functor&lt; T_return, T_args &gt;</h3>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 76f5da5..850c704 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
 <table class="directory">
   <tr class="even"><td class="entry"><a class="el" href="classsigc_1_1pointer__functor_3_01T__return_07T__args_8_8_8_08_4.html#a986042bfa4905a2cb5bf9d17a2f5a110">func_ptr_</a></td><td class="entry"><a class="el" href="classsigc_1_1pointer__functor_3_01T__return_07T__args_8_8_8_08_4.html">sigc::pointer_functor&lt; T_return(T_args...)&gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classsigc_1_1pointer__functor_3_01T__return_07T__args_8_8_8_08_4.html#ad84eb8b252001dd854485486b1b953c1">operator()</a>(type_trait_take_t&lt; T_args &gt;..._A_a) const </td><td class="entry"><a class="el" href="classsigc_1_1pointer__functor_3_01T__return_07T__args_8_8_8_08_4.html">sigc::pointer_functor&lt; T_return(T_args...)&gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classsigc_1_1pointer__functor_3_01T__return_07T__args_8_8_8_08_4.html#a9a9e668280c525690934039360708f88">pointer_functor</a>()</td><td class="entry"><a class="el" href="classsigc_1_1pointer__functor_3_01T__return_07T__args_8_8_8_08_4.html">sigc::pointer_functor&lt; T_return(T_args...)&gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classsigc_1_1pointer__functor_3_01T__return_07T__args_8_8_8_08_4.html#a8c24759c975f2c4e7c18913f1adad397">pointer_functor</a>()=default</td><td class="entry"><a class="el" href="classsigc_1_1pointer__functor_3_01T__return_07T__args_8_8_8_08_4.html">sigc::pointer_functor&lt; T_return(T_args...)&gt;</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classsigc_1_1pointer__functor_3_01T__return_07T__args_8_8_8_08_4.html#acf5187ed4b100979bda904663398b478">pointer_functor</a>(function_type _A_func)</td><td class="entry"><a class="el" href="classsigc_1_1pointer__functor_3_01T__return_07T__args_8_8_8_08_4.html">sigc::pointer_functor&lt; T_return(T_args...)&gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classsigc_1_1pointer__functor_3_01T__return_07T__args_8_8_8_08_4.html#a0a6c15f66e36a7d656d8b13949632ff5">result_type</a> typedef</td><td class="entry"><a class="el" href="classsigc_1_1pointer__functor_3_01T__return_07T__args_8_8_8_08_4.html">sigc::pointer_functor&lt; T_return(T_args...)&gt;</a></td><td class="entry"></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 2f42890..64490c0 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -77,9 +77,9 @@ Public Types</h2></td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:a9a9e668280c525690934039360708f88"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1pointer__functor_3_01T__return_07T__args_8_8_8_08_4.html#a9a9e668280c525690934039360708f88">pointer_functor</a> ()</td></tr>
-<tr class="memdesc:a9a9e668280c525690934039360708f88"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an invalid functor.  <a href="#a9a9e668280c525690934039360708f88">More...</a><br /></td></tr>
-<tr class="separator:a9a9e668280c525690934039360708f88"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8c24759c975f2c4e7c18913f1adad397"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1pointer__functor_3_01T__return_07T__args_8_8_8_08_4.html#a8c24759c975f2c4e7c18913f1adad397">pointer_functor</a> ()=default</td></tr>
+<tr class="memdesc:a8c24759c975f2c4e7c18913f1adad397"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an invalid functor.  <a href="#a8c24759c975f2c4e7c18913f1adad397">More...</a><br /></td></tr>
+<tr class="separator:a8c24759c975f2c4e7c18913f1adad397"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:acf5187ed4b100979bda904663398b478"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1pointer__functor_3_01T__return_07T__args_8_8_8_08_4.html#acf5187ed4b100979bda904663398b478">pointer_functor</a> (function_type _A_func)</td></tr>
 <tr class="memdesc:acf5187ed4b100979bda904663398b478"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a pointer_functor2 object that wraps an existing function.  <a href="#acf5187ed4b100979bda904663398b478">More...</a><br /></td></tr>
 <tr class="separator:acf5187ed4b100979bda904663398b478"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -108,7 +108,7 @@ template &lt;class T_return , class... T_args&gt; </div>
 </div>
 </div>
 <h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a class="anchor" id="a9a9e668280c525690934039360708f88"></a>
+<a class="anchor" id="a8c24759c975f2c4e7c18913f1adad397"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -126,7 +126,7 @@ template &lt;class T_return , class... T_args&gt; </div>
       </table>
   </td>
   <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+<span class="mlabels"><span class="mlabel">default</span></span>  </td>
   </tr>
 </table>
 </div><div class="memdoc">
@@ -232,7 +232,7 @@ template &lt;class T_return , class... T_args&gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 05ba857..af63a27 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -82,7 +82,7 @@ class sigc::signal&lt; T_return, T_arg &gt;</h3>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 015cd82..57af913 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
   <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1trackable.html#a700a7b0a5059a9c8eda2b1a6eb6905f8">remove_destroy_notify_callback</a>(notifiable* data) const </td><td class="entry"><a class="el" href="structsigc_1_1trackable.html">sigc::trackable</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classsigc_1_1signal__with__accumulator.html#ad88f65352f134432ea54851b9f50189b">result_type</a> typedef</td><td class="entry"><a class="el" href="classsigc_1_1signal__with__accumulator.html">sigc::signal_with_accumulator&lt; T_return, void, T_arg...&gt;</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classsigc_1_1signal__with__accumulator.html#abf8c49a1077f722d482f1399b8a75f3c">reverse_iterator</a> typedef</td><td class="entry"><a class="el" href="classsigc_1_1signal__with__accumulator.html">sigc::signal_with_accumulator&lt; T_return, void, T_arg...&gt;</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4.html#a28a1b631364fe189c672bf036eeb79d1">signal</a>()</td><td class="entry"><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4.html">sigc::signal&lt; T_return(T_arg...)&gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4.html#a64007f14e856dfc6fd775b0d7590b830">signal</a>()=default</td><td class="entry"><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4.html">sigc::signal&lt; T_return(T_arg...)&gt;</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4.html#aeb519c37f7e815bd98bab97fff31eb3a">signal</a>(const signal&amp; src)</td><td class="entry"><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4.html">sigc::signal&lt; T_return(T_arg...)&gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr><td class="entry"><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4.html#ab5cc052ce9315f1ebb8f11a4ebd20c14">signal</a>(signal&amp;&amp; src)</td><td class="entry"><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4.html">sigc::signal&lt; T_return(T_arg...)&gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1signal__base.html#aff65198ddcb4fbccb644ff853e663e0e">signal_base</a>() noexcept</td><td class="entry"><a class="el" href="structsigc_1_1signal__base.html">sigc::signal_base</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="structsigc_1_1signal__base.html#a761e95b8c7b460664d3338ed3eb39543">signal_base</a>(const signal_base&amp; src) noexcept</td><td class="entry"><a class="el" href="structsigc_1_1signal__base.html">sigc::signal_base</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1signal__base.html#a9f8570c89cd5c0b35613570a5ea80154">signal_base</a>(signal_base&amp;&amp; src)</td><td class="entry"><a class="el" href="structsigc_1_1signal__base.html">sigc::signal_base</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classsigc_1_1signal__with__accumulator.html#aa89a63854dab616588d61e04f5798687">signal_with_accumulator</a>()</td><td class="entry"><a class="el" href="classsigc_1_1signal__with__accumulator.html">sigc::signal_with_accumulator&lt; T_return, void, T_arg...&gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classsigc_1_1signal__with__accumulator.html#a3a3897c85039df0bdfb3badcf0123674">signal_with_accumulator</a>()=default</td><td class="entry"><a class="el" href="classsigc_1_1signal__with__accumulator.html">sigc::signal_with_accumulator&lt; T_return, void, T_arg...&gt;</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classsigc_1_1signal__with__accumulator.html#a33d243a0841a085e3d2fddc7723de5ce">signal_with_accumulator</a>(const signal_with_accumulator&amp; src)</td><td class="entry"><a class="el" href="classsigc_1_1signal__with__accumulator.html">sigc::signal_with_accumulator&lt; T_return, void, T_arg...&gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr><td class="entry"><a class="el" href="classsigc_1_1signal__with__accumulator.html#a3a86b1a92c39a2f82f0c568243894462">signal_with_accumulator</a>(signal_with_accumulator&amp;&amp; src)</td><td class="entry"><a class="el" href="classsigc_1_1signal__with__accumulator.html">sigc::signal_with_accumulator&lt; T_return, void, T_arg...&gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1signal__base.html#a0725416f747d6db3c57fa318a9f887a8">size</a>() const noexcept</td><td class="entry"><a class="el" href="structsigc_1_1signal__base.html">sigc::signal_base</a></td><td class="entry"></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 9e6aca9..c941b67 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -109,8 +109,8 @@ Public Types</h2></td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:a28a1b631364fe189c672bf036eeb79d1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4.html#a28a1b631364fe189c672bf036eeb79d1">signal</a> ()</td></tr>
-<tr class="separator:a28a1b631364fe189c672bf036eeb79d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a64007f14e856dfc6fd775b0d7590b830"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4.html#a64007f14e856dfc6fd775b0d7590b830">signal</a> ()=default</td></tr>
+<tr class="separator:a64007f14e856dfc6fd775b0d7590b830"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:aeb519c37f7e815bd98bab97fff31eb3a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4.html#aeb519c37f7e815bd98bab97fff31eb3a">signal</a> (const <a class="el" href="classsigc_1_1signal.html">signal</a>&amp; src)</td></tr>
 <tr class="separator:aeb519c37f7e815bd98bab97fff31eb3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ab5cc052ce9315f1ebb8f11a4ebd20c14"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4.html#ab5cc052ce9315f1ebb8f11a4ebd20c14">signal</a> (<a class="el" href="classsigc_1_1signal.html">signal</a>&amp;&amp; src)</td></tr>
@@ -120,8 +120,8 @@ Public Member Functions</h2></td></tr>
 <tr class="memitem:ab765e34c9b99fe2d6e2c888fa9d139e8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classsigc_1_1signal.html">signal</a>&amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4.html#ab765e34c9b99fe2d6e2c888fa9d139e8">operator=</a> (<a class="el" href="classsigc_1_1signal.html">signal</a>&amp;&amp; src)</td></tr>
 <tr class="separator:ab765e34c9b99fe2d6e2c888fa9d139e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pub_methods_classsigc_1_1signal__with__accumulator"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classsigc_1_1signal__with__accumulator')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classsigc_1_1signal__with__accumulator.html">sigc::signal_with_accumulator&lt; T_return, void, T_arg...&gt;</a></td></tr>
-<tr class="memitem:aa89a63854dab616588d61e04f5798687 inherit pub_methods_classsigc_1_1signal__with__accumulator"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1signal__with__accumulator.html#aa89a63854dab616588d61e04f5798687">signal_with_accumulator</a> ()</td></tr>
-<tr class="separator:aa89a63854dab616588d61e04f5798687 inherit pub_methods_classsigc_1_1signal__with__accumulator"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3a3897c85039df0bdfb3badcf0123674 inherit pub_methods_classsigc_1_1signal__with__accumulator"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1signal__with__accumulator.html#a3a3897c85039df0bdfb3badcf0123674">signal_with_accumulator</a> ()=default</td></tr>
+<tr class="separator:a3a3897c85039df0bdfb3badcf0123674 inherit pub_methods_classsigc_1_1signal__with__accumulator"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a33d243a0841a085e3d2fddc7723de5ce inherit pub_methods_classsigc_1_1signal__with__accumulator"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1signal__with__accumulator.html#a33d243a0841a085e3d2fddc7723de5ce">signal_with_accumulator</a> (const <a class="el" href="classsigc_1_1signal__with__accumulator.html">signal_with_accumulator</a>&amp; src)</td></tr>
 <tr class="separator:a33d243a0841a085e3d2fddc7723de5ce inherit pub_methods_classsigc_1_1signal__with__accumulator"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a3a86b1a92c39a2f82f0c568243894462 inherit pub_methods_classsigc_1_1signal__with__accumulator"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1signal__with__accumulator.html#a3a86b1a92c39a2f82f0c568243894462">signal_with_accumulator</a> (<a class="el" href="classsigc_1_1signal__with__accumulator.html">signal_with_accumulator</a>&amp;&amp; src)</td></tr>
@@ -253,7 +253,7 @@ template &lt;class T_return , class... T_arg&gt; </div>
 </div>
 </div>
 <h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a class="anchor" id="a28a1b631364fe189c672bf036eeb79d1"></a>
+<a class="anchor" id="a64007f14e856dfc6fd775b0d7590b830"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -271,7 +271,7 @@ template &lt;class T_return , class... T_arg&gt; </div>
       </table>
   </td>
   <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+<span class="mlabels"><span class="mlabel">default</span></span>  </td>
   </tr>
 </table>
 </div><div class="memdoc">
@@ -386,7 +386,7 @@ template &lt;class T_return , class... T_arg&gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 6376a68..ad05cd3 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -58,7 +58,7 @@
 
 <p>This is the complete list of members for <a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4_1_1accumulated.html">sigc::signal&lt; T_return(T_arg...)&gt;::accumulated&lt; T_accumulator &gt;</a>, including all inherited members.</p>
 <table class="directory">
-  <tr class="even"><td class="entry"><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4_1_1accumulated.html#a4f9156ded62f393d5db95576d7ec1e74">accumulated</a>()</td><td class="entry"><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4_1_1accumulated.html">sigc::signal&lt; T_return(T_arg...)&gt;::accumulated&lt; T_accumulator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4_1_1accumulated.html#a082c6d8d61fb29a411b6ee457c4cfb26">accumulated</a>()=default</td><td class="entry"><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4_1_1accumulated.html">sigc::signal&lt; T_return(T_arg...)&gt;::accumulated&lt; T_accumulator &gt;</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4_1_1accumulated.html#ae2a536f43414691cf7a11ca8eb8b8ca4">accumulated</a>(const accumulated&amp; src)</td><td class="entry"><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4_1_1accumulated.html">sigc::signal&lt; T_return(T_arg...)&gt;::accumulated&lt; T_accumulator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1trackable.html#a146daab307d37c92b68a974c79ed10b7">add_destroy_notify_callback</a>(notifiable* data, func_destroy_notify func) const </td><td class="entry"><a class="el" href="structsigc_1_1trackable.html">sigc::trackable</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="structsigc_1_1signal__base.html#a52fda4806ec9dbc02baa95ce70c13fb0">block</a>(bool should_block=true) noexcept</td><td class="entry"><a class="el" href="structsigc_1_1signal__base.html">sigc::signal_base</a></td><td class="entry"></td></tr>
@@ -97,7 +97,7 @@
   <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1signal__base.html#aff65198ddcb4fbccb644ff853e663e0e">signal_base</a>() noexcept</td><td class="entry"><a class="el" href="structsigc_1_1signal__base.html">sigc::signal_base</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="structsigc_1_1signal__base.html#a761e95b8c7b460664d3338ed3eb39543">signal_base</a>(const signal_base&amp; src) noexcept</td><td class="entry"><a class="el" href="structsigc_1_1signal__base.html">sigc::signal_base</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1signal__base.html#a9f8570c89cd5c0b35613570a5ea80154">signal_base</a>(signal_base&amp;&amp; src)</td><td class="entry"><a class="el" href="structsigc_1_1signal__base.html">sigc::signal_base</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classsigc_1_1signal__with__accumulator.html#aa89a63854dab616588d61e04f5798687">signal_with_accumulator</a>()</td><td class="entry"><a class="el" href="classsigc_1_1signal__with__accumulator.html">sigc::signal_with_accumulator&lt; T_return, T_accumulator, T_arg...&gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classsigc_1_1signal__with__accumulator.html#a3a3897c85039df0bdfb3badcf0123674">signal_with_accumulator</a>()=default</td><td class="entry"><a class="el" href="classsigc_1_1signal__with__accumulator.html">sigc::signal_with_accumulator&lt; T_return, T_accumulator, T_arg...&gt;</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classsigc_1_1signal__with__accumulator.html#a33d243a0841a085e3d2fddc7723de5ce">signal_with_accumulator</a>(const signal_with_accumulator&amp; src)</td><td class="entry"><a class="el" href="classsigc_1_1signal__with__accumulator.html">sigc::signal_with_accumulator&lt; T_return, T_accumulator, T_arg...&gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr><td class="entry"><a class="el" href="classsigc_1_1signal__with__accumulator.html#a3a86b1a92c39a2f82f0c568243894462">signal_with_accumulator</a>(signal_with_accumulator&amp;&amp; src)</td><td class="entry"><a class="el" href="classsigc_1_1signal__with__accumulator.html">sigc::signal_with_accumulator&lt; T_return, T_accumulator, T_arg...&gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1signal__base.html#a0725416f747d6db3c57fa318a9f887a8">size</a>() const noexcept</td><td class="entry"><a class="el" href="structsigc_1_1signal__base.html">sigc::signal_base</a></td><td class="entry"></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index f83e6f3..76bbb9d 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -73,13 +73,13 @@ Inheritance diagram for sigc::signal&lt; T_return(T_arg...)&gt;::accumulated&lt;
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:a4f9156ded62f393d5db95576d7ec1e74"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4_1_1accumulated.html#a4f9156ded62f393d5db95576d7ec1e74">accumulated</a> ()</td></tr>
-<tr class="separator:a4f9156ded62f393d5db95576d7ec1e74"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a082c6d8d61fb29a411b6ee457c4cfb26"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4_1_1accumulated.html#a082c6d8d61fb29a411b6ee457c4cfb26">accumulated</a> ()=default</td></tr>
+<tr class="separator:a082c6d8d61fb29a411b6ee457c4cfb26"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ae2a536f43414691cf7a11ca8eb8b8ca4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4_1_1accumulated.html#ae2a536f43414691cf7a11ca8eb8b8ca4">accumulated</a> (const accumulated&amp; src)</td></tr>
 <tr class="separator:ae2a536f43414691cf7a11ca8eb8b8ca4"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pub_methods_classsigc_1_1signal__with__accumulator"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classsigc_1_1signal__with__accumulator')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classsigc_1_1signal__with__accumulator.html">sigc::signal_with_accumulator&lt; T_return, T_accumulator, T_arg...&gt;</a></td></tr>
-<tr class="memitem:aa89a63854dab616588d61e04f5798687 inherit pub_methods_classsigc_1_1signal__with__accumulator"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1signal__with__accumulator.html#aa89a63854dab616588d61e04f5798687">signal_with_accumulator</a> ()</td></tr>
-<tr class="separator:aa89a63854dab616588d61e04f5798687 inherit pub_methods_classsigc_1_1signal__with__accumulator"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3a3897c85039df0bdfb3badcf0123674 inherit pub_methods_classsigc_1_1signal__with__accumulator"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1signal__with__accumulator.html#a3a3897c85039df0bdfb3badcf0123674">signal_with_accumulator</a> ()=default</td></tr>
+<tr class="separator:a3a3897c85039df0bdfb3badcf0123674 inherit pub_methods_classsigc_1_1signal__with__accumulator"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a33d243a0841a085e3d2fddc7723de5ce inherit pub_methods_classsigc_1_1signal__with__accumulator"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1signal__with__accumulator.html#a33d243a0841a085e3d2fddc7723de5ce">signal_with_accumulator</a> (const <a class="el" href="classsigc_1_1signal__with__accumulator.html">signal_with_accumulator</a>&amp; src)</td></tr>
 <tr class="separator:a33d243a0841a085e3d2fddc7723de5ce inherit pub_methods_classsigc_1_1signal__with__accumulator"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a3a86b1a92c39a2f82f0c568243894462 inherit pub_methods_classsigc_1_1signal__with__accumulator"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1signal__with__accumulator.html#a3a86b1a92c39a2f82f0c568243894462">signal_with_accumulator</a> (<a class="el" href="classsigc_1_1signal__with__accumulator.html">signal_with_accumulator</a>&amp;&amp; src)</td></tr>
@@ -256,7 +256,7 @@ class sigc::signal&lt; T_return(T_arg...)&gt;::accumulated&lt; T_accumulator &gt
 <div class="line">};</div>
 </div><!-- fragment --> </dd></dl>
 </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a class="anchor" id="a4f9156ded62f393d5db95576d7ec1e74"></a>
+<a class="anchor" id="a082c6d8d61fb29a411b6ee457c4cfb26"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -276,7 +276,7 @@ template &lt;class T_accumulator &gt; </div>
       </table>
   </td>
   <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+<span class="mlabels"><span class="mlabel">default</span></span>  </td>
   </tr>
 </table>
 </div><div class="memdoc">
@@ -314,7 +314,7 @@ template &lt;class T_accumulator &gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 7a3b6b5..e88cba5 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -95,7 +95,7 @@
   <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1signal__base.html#aff65198ddcb4fbccb644ff853e663e0e">signal_base</a>() noexcept</td><td class="entry"><a class="el" href="structsigc_1_1signal__base.html">sigc::signal_base</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="structsigc_1_1signal__base.html#a761e95b8c7b460664d3338ed3eb39543">signal_base</a>(const signal_base&amp; src) noexcept</td><td class="entry"><a class="el" href="structsigc_1_1signal__base.html">sigc::signal_base</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1signal__base.html#a9f8570c89cd5c0b35613570a5ea80154">signal_base</a>(signal_base&amp;&amp; src)</td><td class="entry"><a class="el" href="structsigc_1_1signal__base.html">sigc::signal_base</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classsigc_1_1signal__with__accumulator.html#aa89a63854dab616588d61e04f5798687">signal_with_accumulator</a>()</td><td class="entry"><a class="el" href="classsigc_1_1signal__with__accumulator.html">sigc::signal_with_accumulator&lt; T_return, T_accumulator, T_arg &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classsigc_1_1signal__with__accumulator.html#a3a3897c85039df0bdfb3badcf0123674">signal_with_accumulator</a>()=default</td><td class="entry"><a class="el" href="classsigc_1_1signal__with__accumulator.html">sigc::signal_with_accumulator&lt; T_return, T_accumulator, T_arg &gt;</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classsigc_1_1signal__with__accumulator.html#a33d243a0841a085e3d2fddc7723de5ce">signal_with_accumulator</a>(const signal_with_accumulator&amp; src)</td><td class="entry"><a class="el" href="classsigc_1_1signal__with__accumulator.html">sigc::signal_with_accumulator&lt; T_return, T_accumulator, T_arg &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr><td class="entry"><a class="el" href="classsigc_1_1signal__with__accumulator.html#a3a86b1a92c39a2f82f0c568243894462">signal_with_accumulator</a>(signal_with_accumulator&amp;&amp; src)</td><td class="entry"><a class="el" href="classsigc_1_1signal__with__accumulator.html">sigc::signal_with_accumulator&lt; T_return, T_accumulator, T_arg &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1signal__base.html#a0725416f747d6db3c57fa318a9f887a8">size</a>() const noexcept</td><td class="entry"><a class="el" href="structsigc_1_1signal__base.html">sigc::signal_base</a></td><td class="entry"></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 00e155f..64c76b1 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -102,8 +102,8 @@ Public Types</h2></td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:aa89a63854dab616588d61e04f5798687"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1signal__with__accumulator.html#aa89a63854dab616588d61e04f5798687">signal_with_accumulator</a> ()</td></tr>
-<tr class="separator:aa89a63854dab616588d61e04f5798687"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3a3897c85039df0bdfb3badcf0123674"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1signal__with__accumulator.html#a3a3897c85039df0bdfb3badcf0123674">signal_with_accumulator</a> ()=default</td></tr>
+<tr class="separator:a3a3897c85039df0bdfb3badcf0123674"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a33d243a0841a085e3d2fddc7723de5ce"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1signal__with__accumulator.html#a33d243a0841a085e3d2fddc7723de5ce">signal_with_accumulator</a> (const <a class="el" href="classsigc_1_1signal__with__accumulator.html">signal_with_accumulator</a>&amp; src)</td></tr>
 <tr class="separator:a33d243a0841a085e3d2fddc7723de5ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a3a86b1a92c39a2f82f0c568243894462"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1signal__with__accumulator.html#a3a86b1a92c39a2f82f0c568243894462">signal_with_accumulator</a> (<a class="el" href="classsigc_1_1signal__with__accumulator.html">signal_with_accumulator</a>&amp;&amp; src)</td></tr>
@@ -346,7 +346,7 @@ template &lt;class T_return, class T_accumulator, class... T_arg&gt; </div>
 </div>
 </div>
 <h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a class="anchor" id="aa89a63854dab616588d61e04f5798687"></a>
+<a class="anchor" id="a3a3897c85039df0bdfb3badcf0123674"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -364,7 +364,7 @@ template &lt;class T_return, class T_accumulator, class... T_arg&gt; </div>
       </table>
   </td>
   <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+<span class="mlabels"><span class="mlabel">default</span></span>  </td>
   </tr>
 </table>
 </div><div class="memdoc">
@@ -723,7 +723,7 @@ template &lt;class T_return, class T_accumulator, class... T_arg&gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 7d2cb9a..9763473 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -75,7 +75,7 @@ class sigc::slot&lt; T_return, T_arg &gt;</h3>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index da36015..b17721e 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -67,7 +67,7 @@
   <tr class="even"><td class="entry"><a class="el" href="classsigc_1_1slot__base.html#a719ea8d3cec443f2e63717bfbae41a30">func_destroy_notify</a> typedef</td><td class="entry"><a class="el" href="classsigc_1_1slot__base.html">sigc::slot_base</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classsigc_1_1slot__base.html#a90d4d7d6037973a94d7dfd7ba9a5feb9">operator bool</a>() const noexcept</td><td class="entry"><a class="el" href="classsigc_1_1slot__base.html">sigc::slot_base</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html#af0784c46ac4d3ec500b2d2c738e39ca4">operator()</a>(type_trait_take_t&lt; T_arg &gt;..._A_a) const </td><td class="entry"><a class="el" href="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html">sigc::slot&lt; T_return(T_arg...)&gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html#a34e1ec92ebbc3ee4dbc8acdeb525c12c">operator=</a>(const slot&amp; src)</td><td class="entry"><a class="el" href="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html">sigc::slot&lt; T_return(T_arg...)&gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html#af729fbf89950d5d6bfb816b8d0899ec2">operator=</a>(const slot&amp; src)=default</td><td class="entry"><a class="el" href="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html">sigc::slot&lt; T_return(T_arg...)&gt;</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html#a22759a1af0d37b9e7432bbb046ceff8a">operator=</a>(slot&amp;&amp; src)</td><td class="entry"><a class="el" href="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html">sigc::slot&lt; T_return(T_arg...)&gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr><td class="entry"><a class="el" href="classsigc_1_1slot__base.html#a19522528264f1646f8ed982b0042ffad">sigc::slot_base::operator=</a>(const slot_base&amp; src)</td><td class="entry"><a class="el" href="classsigc_1_1slot__base.html">sigc::slot_base</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classsigc_1_1slot__base.html#a64e36f28ee61a94c0496fe76f6b3e813">sigc::slot_base::operator=</a>(slot_base&amp;&amp; src)</td><td class="entry"><a class="el" href="classsigc_1_1slot__base.html">sigc::slot_base</a></td><td class="entry"></td></tr>
@@ -75,9 +75,9 @@
   <tr class="even"><td class="entry"><a class="el" href="classsigc_1_1slot__base.html#aa482f7dfc73c6950abde0fd51b3125b5">rep_</a></td><td class="entry"><a class="el" href="classsigc_1_1slot__base.html">sigc::slot_base</a></td><td class="entry"><span class="mlabel">mutable</span></td></tr>
   <tr><td class="entry"><a class="el" href="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html#af593e79280c004b6ef8f4722953df0c4">result_type</a> typedef</td><td class="entry"><a class="el" href="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html">sigc::slot&lt; T_return(T_arg...)&gt;</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classsigc_1_1slot__base.html#a2b17848ee6104b628932c1fe5473ed1b">set_parent</a>(notifiable* parent, notifiable::func_destroy_notify cleanup) const noexcept</td><td class="entry"><a class="el" href="classsigc_1_1slot__base.html">sigc::slot_base</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html#add0d65ea6dc554733e766b3510c89a3a">slot</a>()</td><td class="entry"><a class="el" href="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html">sigc::slot&lt; T_return(T_arg...)&gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html#acc6f588781fd085c25f1971ef5011cce">slot</a>()=default</td><td class="entry"><a class="el" href="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html">sigc::slot&lt; T_return(T_arg...)&gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html#a8c7a2fb604a0a9495bfa2850bb3520f5">slot</a>(const T_functor&amp; _A_func)</td><td class="entry"><a class="el" href="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html">sigc::slot&lt; T_return(T_arg...)&gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html#ad1e5bc73a259ee666eb8d11d9e48d1d7">slot</a>(const slot&amp; src)</td><td class="entry"><a class="el" href="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html">sigc::slot&lt; T_return(T_arg...)&gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html#a414a664fc0112a68963e6e5187287237">slot</a>(const slot&amp; src)=default</td><td class="entry"><a class="el" href="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html">sigc::slot&lt; T_return(T_arg...)&gt;</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html#ae7d852d9ac2c9a6a37564a0f4aed3872">slot</a>(slot&amp;&amp; src)</td><td class="entry"><a class="el" href="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html">sigc::slot&lt; T_return(T_arg...)&gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr><td class="entry"><a class="el" href="classsigc_1_1slot__base.html#a182d5db71ef371838c73bcf1c135cd9a">slot_base</a>() noexcept</td><td class="entry"><a class="el" href="classsigc_1_1slot__base.html">sigc::slot_base</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classsigc_1_1slot__base.html#a5fbc2bf38a0d9ebcbe13d578d2b3d5a1">slot_base</a>(rep_type* rep) noexcept</td><td class="entry"><a class="el" href="classsigc_1_1slot__base.html">sigc::slot_base</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
@@ -88,7 +88,7 @@
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 5196964..26291a0 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -79,24 +79,24 @@ Public Types</h2></td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:add0d65ea6dc554733e766b3510c89a3a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html#add0d65ea6dc554733e766b3510c89a3a">slot</a> ()</td></tr>
-<tr class="separator:add0d65ea6dc554733e766b3510c89a3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acc6f588781fd085c25f1971ef5011cce"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html#acc6f588781fd085c25f1971ef5011cce">slot</a> ()=default</td></tr>
+<tr class="separator:acc6f588781fd085c25f1971ef5011cce"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a8c7a2fb604a0a9495bfa2850bb3520f5"><td class="memTemplParams" colspan="2">template&lt;class T_functor &gt; </td></tr>
 <tr class="memitem:a8c7a2fb604a0a9495bfa2850bb3520f5"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html#a8c7a2fb604a0a9495bfa2850bb3520f5">slot</a> (const T_functor&amp; _A_func)</td></tr>
 <tr class="memdesc:a8c7a2fb604a0a9495bfa2850bb3520f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a slot from an arbitrary functor.  <a href="#a8c7a2fb604a0a9495bfa2850bb3520f5">More...</a><br /></td></tr>
 <tr class="separator:a8c7a2fb604a0a9495bfa2850bb3520f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad1e5bc73a259ee666eb8d11d9e48d1d7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html#ad1e5bc73a259ee666eb8d11d9e48d1d7">slot</a> (const <a class="el" href="classsigc_1_1slot.html">slot</a>&amp; src)</td></tr>
-<tr class="memdesc:ad1e5bc73a259ee666eb8d11d9e48d1d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a slot, copying an existing one.  <a href="#ad1e5bc73a259ee666eb8d11d9e48d1d7">More...</a><br /></td></tr>
-<tr class="separator:ad1e5bc73a259ee666eb8d11d9e48d1d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a414a664fc0112a68963e6e5187287237"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html#a414a664fc0112a68963e6e5187287237">slot</a> (const <a class="el" href="classsigc_1_1slot.html">slot</a>&amp; src)=default</td></tr>
+<tr class="memdesc:a414a664fc0112a68963e6e5187287237"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a slot, copying an existing one.  <a href="#a414a664fc0112a68963e6e5187287237">More...</a><br /></td></tr>
+<tr class="separator:a414a664fc0112a68963e6e5187287237"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ae7d852d9ac2c9a6a37564a0f4aed3872"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html#ae7d852d9ac2c9a6a37564a0f4aed3872">slot</a> (<a class="el" href="classsigc_1_1slot.html">slot</a>&amp;&amp; src)</td></tr>
 <tr class="memdesc:ae7d852d9ac2c9a6a37564a0f4aed3872"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a slot, moving an existing one.  <a href="#ae7d852d9ac2c9a6a37564a0f4aed3872">More...</a><br /></td></tr>
 <tr class="separator:ae7d852d9ac2c9a6a37564a0f4aed3872"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:af0784c46ac4d3ec500b2d2c738e39ca4"><td class="memItemLeft" align="right" valign="top">T_return&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html#af0784c46ac4d3ec500b2d2c738e39ca4">operator()</a> (<a class="el" href="namespacesigc.html#aa0d56c61023af35c47b79db80b32fd2e">type_trait_take_t</a>&lt; T_arg &gt;..._A_a) const </td></tr>
 <tr class="memdesc:af0784c46ac4d3ec500b2d2c738e39ca4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invoke the contained functor unless slot is in blocking state.  <a href="#af0784c46ac4d3ec500b2d2c738e39ca4">More...</a><br /></td></tr>
 <tr class="separator:af0784c46ac4d3ec500b2d2c738e39ca4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a34e1ec92ebbc3ee4dbc8acdeb525c12c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classsigc_1_1slot.html">slot</a>&amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html#a34e1ec92ebbc3ee4dbc8acdeb525c12c">operator=</a> (const <a class="el" href="classsigc_1_1slot.html">slot</a>&amp; src)</td></tr>
-<tr class="memdesc:a34e1ec92ebbc3ee4dbc8acdeb525c12c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Overrides this slot, making a copy from another slot.  <a href="#a34e1ec92ebbc3ee4dbc8acdeb525c12c">More...</a><br /></td></tr>
-<tr class="separator:a34e1ec92ebbc3ee4dbc8acdeb525c12c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af729fbf89950d5d6bfb816b8d0899ec2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classsigc_1_1slot.html">slot</a>&amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html#af729fbf89950d5d6bfb816b8d0899ec2">operator=</a> (const <a class="el" href="classsigc_1_1slot.html">slot</a>&amp; src)=default</td></tr>
+<tr class="memdesc:af729fbf89950d5d6bfb816b8d0899ec2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Overrides this slot, making a copy from another slot.  <a href="#af729fbf89950d5d6bfb816b8d0899ec2">More...</a><br /></td></tr>
+<tr class="separator:af729fbf89950d5d6bfb816b8d0899ec2"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a22759a1af0d37b9e7432bbb046ceff8a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classsigc_1_1slot.html">slot</a>&amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html#a22759a1af0d37b9e7432bbb046ceff8a">operator=</a> (<a class="el" href="classsigc_1_1slot.html">slot</a>&amp;&amp; src)</td></tr>
 <tr class="memdesc:a22759a1af0d37b9e7432bbb046ceff8a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Overrides this slot, making a move from another slot.  <a href="#a22759a1af0d37b9e7432bbb046ceff8a">More...</a><br /></td></tr>
 <tr class="separator:a22759a1af0d37b9e7432bbb046ceff8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -175,7 +175,7 @@ template &lt;class T_return , class... T_arg&gt; </div>
 </div>
 </div>
 <h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a class="anchor" id="add0d65ea6dc554733e766b3510c89a3a"></a>
+<a class="anchor" id="acc6f588781fd085c25f1971ef5011cce"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -193,7 +193,7 @@ template &lt;class T_return , class... T_arg&gt; </div>
       </table>
   </td>
   <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">default</span></span>  </td>
   </tr>
 </table>
 </div><div class="memdoc">
@@ -236,7 +236,7 @@ template &lt;class T_functor &gt; </div>
 
 </div>
 </div>
-<a class="anchor" id="ad1e5bc73a259ee666eb8d11d9e48d1d7"></a>
+<a class="anchor" id="a414a664fc0112a68963e6e5187287237"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -255,7 +255,7 @@ template &lt;class T_return , class... T_arg&gt; </div>
       </table>
   </td>
   <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+<span class="mlabels"><span class="mlabel">default</span></span>  </td>
   </tr>
 </table>
 </div><div class="memdoc">
@@ -340,7 +340,7 @@ template &lt;class T_return , class... T_arg&gt; </div>
 
 </div>
 </div>
-<a class="anchor" id="a34e1ec92ebbc3ee4dbc8acdeb525c12c"></a>
+<a class="anchor" id="af729fbf89950d5d6bfb816b8d0899ec2"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -359,7 +359,7 @@ template &lt;class T_return , class... T_arg&gt; </div>
       </table>
   </td>
   <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+<span class="mlabels"><span class="mlabel">default</span></span>  </td>
   </tr>
 </table>
 </div><div class="memdoc">
@@ -413,7 +413,7 @@ template &lt;class T_return , class... T_arg&gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index cb7ac2f..2bd21ca 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -80,7 +80,7 @@
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 948ca7e..3a40246 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -624,7 +624,7 @@ Public Attributes</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 6c09472..d11756e 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -68,7 +68,7 @@
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 8c44df7..abb866b 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -266,7 +266,7 @@ template &lt;typename... T_arg&gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/docs/reference/html/deprecated.html b/docs/reference/html/deprecated.html
deleted file mode 100644 (file)
index a78709c..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.9.1"/>
-<title>libsigc++: Deprecated List</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-<link href="doxygen-extra.css" rel="stylesheet" type="text/css"/>
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td style="padding-left: 0.5em;">
-   <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
-   </div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.9.1 -->
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li class="current"><a href="pages.html"><span>Related&#160;Pages</span></a></li>
-      <li><a href="modules.html"><span>Modules</span></a></li>
-      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
-      <li><a href="annotated.html"><span>Classes</span></a></li>
-    </ul>
-  </div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">Deprecated List </div>  </div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock"><dl class="reflist">
-<dt><a class="anchor" id="_deprecated000001"></a>globalScope&gt; Member <a class="el" href="group__sigcfunctors.html#gadf1ba3cacb09cc5c3c3e399836ec6e50">SIGC_FUNCTORS_DEDUCE_RESULT_TYPE_WITH_DECLTYPE</a>  </dt>
-<dd>This macro does nothing. The test it activated in libsigc++ versions before 2.6, is now unconditionally activated.</dd>
-</dl>
-</div></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.9.1
-</small></address>
-</body>
-</html>
index 58a9166..851c835 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -78,7 +78,7 @@ Files</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 420fb27..0a802bb 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -91,7 +91,7 @@ Files</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 8540c54..55060a4 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -68,7 +68,7 @@ Files</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 8392be6..1e903b5 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -64,7 +64,7 @@ Files</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 80295c2..7bf09f9 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
 
 <h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
 <li>accumulated()
-: <a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4_1_1accumulated.html#a4f9156ded62f393d5db95576d7ec1e74">sigc::signal&lt; T_return(T_arg...)&gt;::accumulated&lt; T_accumulator &gt;</a>
+: <a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4_1_1accumulated.html#a082c6d8d61fb29a411b6ee457c4cfb26">sigc::signal&lt; T_return(T_arg...)&gt;::accumulated&lt; T_accumulator &gt;</a>
 </li>
 <li>accumulator_type
 : <a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4.html#a80332f4caf87e55c1038365318dacb60">sigc::signal&lt; T_return(T_arg...)&gt;</a>
 </li>
 <li>adaptor_functor()
-: <a class="el" href="structsigc_1_1adaptor__functor.html#a39ef4610f8e0f03425b6f4a44b59e5fb">sigc::adaptor_functor&lt; T_functor &gt;</a>
+: <a class="el" href="structsigc_1_1adaptor__functor.html#a35ecf04af30830154f9ced6ddb9401a7">sigc::adaptor_functor&lt; T_functor &gt;</a>
 </li>
 <li>adaptor_type
 : <a class="el" href="structsigc_1_1adaptor__trait_3_01T__functor_00_01false_01_4.html#af72713c96b82c5205ea4e884c9fd7565">sigc::adaptor_trait&lt; T_functor, false &gt;</a>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 6f399ac..0ceb229 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 3aa20e6..1ed2e3c 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index eabf897..652d630 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -97,7 +97,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 5292379..6d5da8c 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
 </li>
 <li>exception_catch_functor()
 : <a class="el" href="structsigc_1_1exception__catch__functor.html#acefeea54e1d83cb64844a956598918fd">sigc::exception_catch_functor&lt; T_functor, T_catcher, T_return &gt;</a>
-, <a class="el" href="structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html#a84b167dc0dd520253776c55eb711c461">sigc::exception_catch_functor&lt; T_functor, T_catcher, void &gt;</a>
+, <a class="el" href="structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html#af98f46c6e103e71aed307487a8bc01db">sigc::exception_catch_functor&lt; T_functor, T_catcher, void &gt;</a>
 </li>
 </ul>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 78205ba..2feb9db 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 7091a7d..9688f02 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -82,7 +82,7 @@
 
 <h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
 <li>accumulated()
-: <a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4_1_1accumulated.html#a4f9156ded62f393d5db95576d7ec1e74">sigc::signal&lt; T_return(T_arg...)&gt;::accumulated&lt; T_accumulator &gt;</a>
+: <a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4_1_1accumulated.html#a082c6d8d61fb29a411b6ee457c4cfb26">sigc::signal&lt; T_return(T_arg...)&gt;::accumulated&lt; T_accumulator &gt;</a>
 </li>
 <li>adaptor_functor()
 : <a class="el" href="structsigc_1_1adaptor__functor.html#ac5907212f7ee2eadf10b31757a0c5930">sigc::adaptor_functor&lt; T_functor &gt;</a>
 </li>
 <li>exception_catch_functor()
 : <a class="el" href="structsigc_1_1exception__catch__functor.html#acefeea54e1d83cb64844a956598918fd">sigc::exception_catch_functor&lt; T_functor, T_catcher, T_return &gt;</a>
-, <a class="el" href="structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html#a84b167dc0dd520253776c55eb711c461">sigc::exception_catch_functor&lt; T_functor, T_catcher, void &gt;</a>
+, <a class="el" href="structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html#af98f46c6e103e71aed307487a8bc01db">sigc::exception_catch_functor&lt; T_functor, T_catcher, void &gt;</a>
 </li>
 </ul>
 
 , <a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4.html#a826d3477588200bb8e1be7a2369892a2">sigc::signal&lt; T_return(T_arg...)&gt;</a>
 , <a class="el" href="structsigc_1_1signal__base.html#a277a34edf44207fb4784807eac5872c6">sigc::signal_base</a>
 , <a class="el" href="classsigc_1_1signal__with__accumulator.html#a1df17e4384549a0029d459ef6df00eb5">sigc::signal_with_accumulator&lt; T_return, T_accumulator, T_arg &gt;</a>
-, <a class="el" href="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html#a34e1ec92ebbc3ee4dbc8acdeb525c12c">sigc::slot&lt; T_return(T_arg...)&gt;</a>
+, <a class="el" href="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html#af729fbf89950d5d6bfb816b8d0899ec2">sigc::slot&lt; T_return(T_arg...)&gt;</a>
 , <a class="el" href="classsigc_1_1slot__base.html#a64e36f28ee61a94c0496fe76f6b3e813">sigc::slot_base</a>
 , <a class="el" href="structsigc_1_1trackable.html#a7494fbad23a65932ff1457d00d4edaf5">sigc::trackable</a>
 </li>
 
 <h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
 <li>pointer_functor()
-: <a class="el" href="classsigc_1_1pointer__functor_3_01T__return_07T__args_8_8_8_08_4.html#a9a9e668280c525690934039360708f88">sigc::pointer_functor&lt; T_return(T_args...)&gt;</a>
+: <a class="el" href="classsigc_1_1pointer__functor_3_01T__return_07T__args_8_8_8_08_4.html#a8c24759c975f2c4e7c18913f1adad397">sigc::pointer_functor&lt; T_return(T_args...)&gt;</a>
 </li>
 <li>pop_back()
 : <a class="el" href="structsigc_1_1slot__list.html#abb28f82ef0cbc78a86a4becd61b0c9ff">sigc::slot_list&lt; T_slot &gt;</a>
 : <a class="el" href="structsigc_1_1retype__functor.html#aa8d20c74c1c3262b450bf0ac963b3925">sigc::retype_functor&lt; T_functor, T_type &gt;</a>
 </li>
 <li>retype_return_functor()
-: <a class="el" href="structsigc_1_1retype__return__functor.html#aa9546db86a6d1cfa7224a3a0cbad4827">sigc::retype_return_functor&lt; T_return, T_functor &gt;</a>
+: <a class="el" href="structsigc_1_1retype__return__functor.html#a59293dcbd669f21528d027d89b205a9b">sigc::retype_return_functor&lt; T_return, T_functor &gt;</a>
 , <a class="el" href="structsigc_1_1retype__return__functor_3_01void_00_01T__functor_01_4.html#acd4789babb601ac5bee163651d89f3c8">sigc::retype_return_functor&lt; void, T_functor &gt;</a>
 </li>
 </ul>
 : <a class="el" href="classsigc_1_1slot__base.html#a2b17848ee6104b628932c1fe5473ed1b">sigc::slot_base</a>
 </li>
 <li>signal()
-: <a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4.html#a28a1b631364fe189c672bf036eeb79d1">sigc::signal&lt; T_return(T_arg...)&gt;</a>
+: <a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4.html#a64007f14e856dfc6fd775b0d7590b830">sigc::signal&lt; T_return(T_arg...)&gt;</a>
 </li>
 <li>signal_base()
 : <a class="el" href="structsigc_1_1signal__base.html#aff65198ddcb4fbccb644ff853e663e0e">sigc::signal_base</a>
 </li>
 <li>signal_with_accumulator()
-: <a class="el" href="classsigc_1_1signal__with__accumulator.html#aa89a63854dab616588d61e04f5798687">sigc::signal_with_accumulator&lt; T_return, T_accumulator, T_arg &gt;</a>
+: <a class="el" href="classsigc_1_1signal__with__accumulator.html#a3a3897c85039df0bdfb3badcf0123674">sigc::signal_with_accumulator&lt; T_return, T_accumulator, T_arg &gt;</a>
 </li>
 <li>size()
 : <a class="el" href="structsigc_1_1signal__base.html#a0725416f747d6db3c57fa318a9f887a8">sigc::signal_base</a>
 </li>
 <li>slot()
-: <a class="el" href="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html#add0d65ea6dc554733e766b3510c89a3a">sigc::slot&lt; T_return(T_arg...)&gt;</a>
+: <a class="el" href="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html#acc6f588781fd085c25f1971ef5011cce">sigc::slot&lt; T_return(T_arg...)&gt;</a>
 </li>
 <li>slot_base()
 : <a class="el" href="classsigc_1_1slot__base.html#a182d5db71ef371838c73bcf1c135cd9a">sigc::slot_base</a>
 : <a class="el" href="structsigc_1_1connection.html#a99678ccb2be5c20719f37e469416578a">sigc::connection</a>
 </li>
 <li>~exception_catch_functor()
-: <a class="el" href="structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html#a1537e7d0175046d65522bd960149bb62">sigc::exception_catch_functor&lt; T_functor, T_catcher, void &gt;</a>
+: <a class="el" href="structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html#ae50571594945757cc4af73b52f9ac656">sigc::exception_catch_functor&lt; T_functor, T_catcher, void &gt;</a>
 </li>
 <li>~signal_base()
 : <a class="el" href="structsigc_1_1signal__base.html#afa2e5807537c989b430015e5ae05a357">sigc::signal_base</a>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 254191b..1f6aca2 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 311565b..751dc53 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -89,7 +89,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index df1dcff..35b5424 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index f3c189e..a410acd 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
 : <a class="el" href="classsigc_1_1limit__reference.html#a113ef5d5b4db29df0d726e149034d244">sigc::limit_reference&lt; T_type, I_derives_trackable &gt;</a>
 , <a class="el" href="classsigc_1_1limit__reference_3_01T__type_00_01true_01_4.html#af0e66ad8f8945d73f658473e40c57057">sigc::limit_reference&lt; T_type, true &gt;</a>
 </li>
-<li>list_
-: <a class="el" href="structsigc_1_1slot__list.html#a2c5b3ecf068ec93cdc34a4ae8d48313c">sigc::slot_list&lt; T_slot &gt;</a>
-</li>
 </ul>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 8160745..54ca288 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -92,7 +92,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index a80c323..3e96061 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -92,7 +92,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index a5cf123..4b26cc2 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -86,8 +86,8 @@
 : <a class="el" href="classsigc_1_1bound__mem__functor.html#a634f14739f5639cbba81c0fec28303b3">sigc::bound_mem_functor&lt; T_func, T_arg &gt;</a>
 </li>
 <li>obj_type_with_modifier
-: <a class="el" href="classsigc_1_1bound__mem__functor.html#abb9c367edb9d7e8d475ebf1690d079d6">sigc::bound_mem_functor&lt; T_func, T_arg &gt;</a>
-, <a class="el" href="classsigc_1_1mem__functor.html#a24ef71042d8feaed869706c6d3236256">sigc::mem_functor&lt; T_func, T_arg &gt;</a>
+: <a class="el" href="classsigc_1_1bound__mem__functor.html#a66a253cef347ec5ee52a28443b73768a">sigc::bound_mem_functor&lt; T_func, T_arg &gt;</a>
+, <a class="el" href="classsigc_1_1mem__functor.html#af1e0eb58e6f96e48e8660dcb96e7a1fd">sigc::mem_functor&lt; T_func, T_arg &gt;</a>
 </li>
 <li>object_type
 : <a class="el" href="classsigc_1_1bound__mem__functor.html#a6cff1d1d709688fed710b40ce96c6eca">sigc::bound_mem_functor&lt; T_func, T_arg &gt;</a>
 , <a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4.html#a826d3477588200bb8e1be7a2369892a2">sigc::signal&lt; T_return(T_arg...)&gt;</a>
 , <a class="el" href="structsigc_1_1signal__base.html#a277a34edf44207fb4784807eac5872c6">sigc::signal_base</a>
 , <a class="el" href="classsigc_1_1signal__with__accumulator.html#ac0dc555e87b209fb3fc4084cadab9631">sigc::signal_with_accumulator&lt; T_return, T_accumulator, T_arg &gt;</a>
-, <a class="el" href="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html#a34e1ec92ebbc3ee4dbc8acdeb525c12c">sigc::slot&lt; T_return(T_arg...)&gt;</a>
+, <a class="el" href="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html#af729fbf89950d5d6bfb816b8d0899ec2">sigc::slot&lt; T_return(T_arg...)&gt;</a>
 , <a class="el" href="classsigc_1_1slot__base.html#a19522528264f1646f8ed982b0042ffad">sigc::slot_base</a>
 , <a class="el" href="structsigc_1_1trackable.html#ac3d61cdb452dc46fcdc8a8d42d9c079d">sigc::trackable</a>
 </li>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 99cf9ff..469f09f 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -94,7 +94,7 @@
 , <a class="el" href="structsigc_1_1slot__iterator.html#a0294816421156332c4ae91420ff7ac1e">sigc::slot_iterator&lt; T_slot &gt;</a>
 </li>
 <li>pointer_functor()
-: <a class="el" href="classsigc_1_1pointer__functor_3_01T__return_07T__args_8_8_8_08_4.html#a9a9e668280c525690934039360708f88">sigc::pointer_functor&lt; T_return(T_args...)&gt;</a>
+: <a class="el" href="classsigc_1_1pointer__functor_3_01T__return_07T__args_8_8_8_08_4.html#a8c24759c975f2c4e7c18913f1adad397">sigc::pointer_functor&lt; T_return(T_args...)&gt;</a>
 </li>
 <li>pop_back()
 : <a class="el" href="structsigc_1_1slot__list.html#abb28f82ef0cbc78a86a4becd61b0c9ff">sigc::slot_list&lt; T_slot &gt;</a>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index cba56ac..2a020f2 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 3ffe171..7b0a29b 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
 , <a class="el" href="structsigc_1_1compose2__functor.html#a9e5c34a3b9eea07cce88c0450b854eef">sigc::compose2_functor&lt; T_setter, T_getter1, T_getter2 &gt;</a>
 </li>
 <li>signal()
-: <a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4.html#a28a1b631364fe189c672bf036eeb79d1">sigc::signal&lt; T_return(T_arg...)&gt;</a>
+: <a class="el" href="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4.html#a64007f14e856dfc6fd775b0d7590b830">sigc::signal&lt; T_return(T_arg...)&gt;</a>
 </li>
 <li>signal_base()
 : <a class="el" href="structsigc_1_1signal__base.html#a761e95b8c7b460664d3338ed3eb39543">sigc::signal_base</a>
 </li>
 <li>signal_with_accumulator()
-: <a class="el" href="classsigc_1_1signal__with__accumulator.html#aa89a63854dab616588d61e04f5798687">sigc::signal_with_accumulator&lt; T_return, T_accumulator, T_arg &gt;</a>
+: <a class="el" href="classsigc_1_1signal__with__accumulator.html#a3a3897c85039df0bdfb3badcf0123674">sigc::signal_with_accumulator&lt; T_return, T_accumulator, T_arg &gt;</a>
 </li>
 <li>size()
 : <a class="el" href="structsigc_1_1signal__base.html#a0725416f747d6db3c57fa318a9f887a8">sigc::signal_base</a>
 , <a class="el" href="structsigc_1_1slot__iterator.html#a7f3744cd484e734201f4fb20adaa24d9">sigc::slot_iterator&lt; T_slot &gt;</a>
 </li>
 <li>slot()
-: <a class="el" href="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html#add0d65ea6dc554733e766b3510c89a3a">sigc::slot&lt; T_return(T_arg...)&gt;</a>
+: <a class="el" href="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html#acc6f588781fd085c25f1971ef5011cce">sigc::slot&lt; T_return(T_arg...)&gt;</a>
 </li>
 <li>slot_base()
 : <a class="el" href="classsigc_1_1slot__base.html#a182d5db71ef371838c73bcf1c135cd9a">sigc::slot_base</a>
 </li>
 <li>slot_const_iterator()
-: <a class="el" href="structsigc_1_1slot__const__iterator.html#a2b9e80b87a3400bb6f794c07f90d2d47">sigc::slot_const_iterator&lt; T_slot &gt;</a>
+: <a class="el" href="structsigc_1_1slot__const__iterator.html#ab6ef32d4816c355b290fdd19773a9c5a">sigc::slot_const_iterator&lt; T_slot &gt;</a>
 </li>
 <li>slot_iterator()
 : <a class="el" href="structsigc_1_1slot__iterator.html#a07933d72e788285673121e5ce019a260">sigc::slot_iterator&lt; T_slot &gt;</a>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 9b7f804..32da1a6 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -83,7 +83,7 @@
 
 <h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
 <li>T_limit_reference
-: <a class="el" href="classsigc_1_1bound__mem__functor.html#a5f9c4408bf79f18f6531df98c2dbfac1">sigc::bound_mem_functor&lt; T_func, T_arg &gt;</a>
+: <a class="el" href="classsigc_1_1bound__mem__functor.html#ab878d0a58673014fb989e75777a1f11d">sigc::bound_mem_functor&lt; T_func, T_arg &gt;</a>
 </li>
 <li>take
 : <a class="el" href="structsigc_1_1type__trait.html#a628e6e7930d6551bd4f884b02bcd5d17">sigc::type_trait&lt; T_type &gt;</a>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index e3d8ba4..7ccfff7 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
 
 <h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
 <li>obj_type_with_modifier
-: <a class="el" href="classsigc_1_1bound__mem__functor.html#abb9c367edb9d7e8d475ebf1690d079d6">sigc::bound_mem_functor&lt; T_func, T_arg &gt;</a>
-, <a class="el" href="classsigc_1_1mem__functor.html#a24ef71042d8feaed869706c6d3236256">sigc::mem_functor&lt; T_func, T_arg &gt;</a>
+: <a class="el" href="classsigc_1_1bound__mem__functor.html#a66a253cef347ec5ee52a28443b73768a">sigc::bound_mem_functor&lt; T_func, T_arg &gt;</a>
+, <a class="el" href="classsigc_1_1mem__functor.html#af1e0eb58e6f96e48e8660dcb96e7a1fd">sigc::mem_functor&lt; T_func, T_arg &gt;</a>
 </li>
 <li>object_type
 : <a class="el" href="classsigc_1_1bound__mem__functor.html#a6cff1d1d709688fed710b40ce96c6eca">sigc::bound_mem_functor&lt; T_func, T_arg &gt;</a>
 
 <h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
 <li>T_limit_reference
-: <a class="el" href="classsigc_1_1bound__mem__functor.html#a5f9c4408bf79f18f6531df98c2dbfac1">sigc::bound_mem_functor&lt; T_func, T_arg &gt;</a>
+: <a class="el" href="classsigc_1_1bound__mem__functor.html#ab878d0a58673014fb989e75777a1f11d">sigc::bound_mem_functor&lt; T_func, T_arg &gt;</a>
 </li>
 <li>take
 : <a class="el" href="structsigc_1_1type__trait.html#a628e6e7930d6551bd4f884b02bcd5d17">sigc::type_trait&lt; T_type &gt;</a>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 53417fa..169d20b 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -91,7 +91,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 9119fa0..16bcd2c 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 5785d9f..f0473c3 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -90,9 +90,6 @@
 <li>impl_
 : <a class="el" href="structsigc_1_1signal__base.html#a747d448c28fd256ef580d165eb69f17a">sigc::signal_base</a>
 </li>
-<li>list_
-: <a class="el" href="structsigc_1_1slot__list.html#a2c5b3ecf068ec93cdc34a4ae8d48313c">sigc::slot_list&lt; T_slot &gt;</a>
-</li>
 <li>obj_
 : <a class="el" href="classsigc_1_1bound__mem__functor.html#a634f14739f5639cbba81c0fec28303b3">sigc::bound_mem_functor&lt; T_func, T_arg &gt;</a>
 </li>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index f95c711..490bfbf 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -86,7 +86,7 @@
 : <a class="el" href="structsigc_1_1connection.html#a99678ccb2be5c20719f37e469416578a">sigc::connection</a>
 </li>
 <li>~exception_catch_functor()
-: <a class="el" href="structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html#a1537e7d0175046d65522bd960149bb62">sigc::exception_catch_functor&lt; T_functor, T_catcher, void &gt;</a>
+: <a class="el" href="structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html#ae50571594945757cc4af73b52f9ac656">sigc::exception_catch_functor&lt; T_functor, T_catcher, void &gt;</a>
 </li>
 <li>~signal_base()
 : <a class="el" href="structsigc_1_1signal__base.html#afa2e5807537c989b430015e5ae05a357">sigc::signal_base</a>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index ebc537c..07b0927 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -109,7 +109,7 @@ A yellow dashed arrow denotes a relation between a template instance and the tem
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 6514bd1..34541a0 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -93,7 +93,7 @@ Classes</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 68b429a..0441eb8 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -257,7 +257,7 @@ template &lt;class T_return , class T_functor &gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index d8cc109..144fbbd 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -76,7 +76,8 @@ Functions</h2></td></tr>
 <dl class="section user"><dt>Examples:</dt><dd><div class="fragment"><div class="line"><span class="keywordtype">float</span> square_root(<span class="keywordtype">float</span> a)  { <span class="keywordflow">return</span> sqrtf(a); }</div>
 <div class="line"><span class="keywordtype">float</span> <a class="codeRef" doxygen="libstdc++.tag:http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01656.html#ga00295ac42c201866e7178edb6878b316">sum</a>(<span class="keywordtype">float</span> a, <span class="keywordtype">float</span> b) { <span class="keywordflow">return</span> a+b; }</div>
 <div class="line">std::cout &lt;&lt; <a class="code" href="group__compose.html#ga34cf5da8f6323bfdc41bc7113d6ad20a">sigc::compose</a>(&amp;square_root, &amp;<a class="codeRef" doxygen="libstdc++.tag:http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01656.html#ga00295ac42c201866e7178edb6878b316">sum</a>)(9, 16); <span class="comment">// calls square_root(sum(3,6))</span></div>
-<div class="line">std::cout &lt;&lt; <a class="code" href="group__compose.html#ga34cf5da8f6323bfdc41bc7113d6ad20a">sigc::compose</a>(&amp;<a class="codeRef" doxygen="libstdc++.tag:http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01656.html#ga00295ac42c201866e7178edb6878b316">sum</a>, &amp;square_root, &amp;square_root)(9); <span class="comment">// calls sum(square_root(9), square_root(9))</span></div>
+<div class="line">std::cout &lt;&lt; <a class="code" href="group__compose.html#ga34cf5da8f6323bfdc41bc7113d6ad20a">sigc::compose</a>(&amp;<a class="codeRef" doxygen="libstdc++.tag:http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01656.html#ga00295ac42c201866e7178edb6878b316">sum</a>, &amp;square_root, &amp;square_root)(9); <span class="comment">// calls sum(square_root(9),</span></div>
+<div class="line">square_root(9))</div>
 </div><!-- fragment --></dd></dl>
 <p>The functor <a class="el" href="group__compose.html#ga34cf5da8f6323bfdc41bc7113d6ad20a" title="Creates an adaptor of type sigc::compose1_functor which combines two functors. ">sigc::compose()</a> returns can be passed directly into sigc::signal::connect().</p>
 <dl class="section user"><dt>Example:</dt><dd><div class="fragment"><div class="line"><a class="code" href="classsigc_1_1signal.html">sigc::signal</a>(<span class="keywordtype">float</span>(<span class="keywordtype">float</span>, <span class="keywordtype">float</span>)&gt; some_signal;</div>
@@ -185,7 +186,7 @@ template &lt;class T_setter , class T_getter1 , class T_getter2 &gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 49856a4..a1b1566 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -70,7 +70,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 8800209..418d8be 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -89,8 +89,9 @@ Functions</h2></td></tr>
 <div class="line"><span class="keywordtype">void</span> foo();</div>
 <div class="line">some_signal.connect(<a class="code" href="group__hide.html#gaba7e613a3b4fc1a6c6188194c5c54849">sigc::hide</a>(&amp;foo));</div>
 </div><!-- fragment --></dd></dl>
-<p><a class="el" href="group__hide.html#gaba7e613a3b4fc1a6c6188194c5c54849" title="Creates an adaptor of type sigc::hide_functor which adds a dummy parameter to the passed functor...">sigc::hide()</a> can be nested in order to discard multiple arguments. </p><dl class="section user"><dt>Example:</dt><dd><div class="fragment"><div class="line"><span class="comment">// multiple argument hiding ...</span></div>
-<div class="line"><a class="code" href="group__hide.html#gaba7e613a3b4fc1a6c6188194c5c54849">sigc::hide</a>(<a class="code" href="group__hide.html#gaba7e613a3b4fc1a6c6188194c5c54849">sigc::hide</a>(&amp;foo))(1,2,3,4); <span class="comment">// adds two dummy parameters at the back and calls foo(1,2)</span></div>
+<p><a class="el" href="group__hide.html#gaba7e613a3b4fc1a6c6188194c5c54849" title="Creates an adaptor of type sigc::hide_functor which adds a dummy parameter to the passed functor...">sigc::hide()</a> can be nested in order to discard multiple arguments. </p><dl class="section user"><dt>Example:</dt><dd><div class="fragment"><div class="line">  <span class="comment">// multiple argument hiding ...</span></div>
+<div class="line">  <a class="code" href="group__hide.html#gaba7e613a3b4fc1a6c6188194c5c54849">sigc::hide</a>(<a class="code" href="group__hide.html#gaba7e613a3b4fc1a6c6188194c5c54849">sigc::hide</a>(&amp;foo))(1,2,3,4); <span class="comment">// adds two dummy parameters at the back and calls</span></div>
+<div class="line">foo(1,2)</div>
 </div><!-- fragment --></dd></dl>
 <p><a class="el" href="group__hide.html#gae4e6f5491471c12440f1c5d480726b98" title="Creates an adaptor of type sigc::retype_return_functor which drops the return value of the passed fun...">sigc::hide_return()</a> alters an arbitrary functor by dropping its return value, thus converting it to a void functor. </p>
 <h2 class="groupheader">Function Documentation</h2>
@@ -204,7 +205,7 @@ template &lt;class T_functor &gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 0916576..95232b3 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -46,7 +46,7 @@
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="group__mem__fun.html#ga6ed5c519845b36eb7c6461ebd2a073c9" title="Creates a functor of type sigc::mem_functor which wraps a method. ">mem_fun()</a> is used to convert a pointer to a method to a functor.  
+<p><a class="el" href="group__mem__fun.html#ga6ed5c519845b36eb7c6461ebd2a073c9" title="Creates a functor of type sigc::mem_functor which wraps a method. ">mem_fun()</a> Creates a functor from a pointer to a method.  
 <a href="#details">More...</a></p>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
@@ -61,9 +61,9 @@ Functions</h2></td></tr>
 <tr class="separator:gae28d6895a9f21c285fe420e928ff046d"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p><a class="el" href="group__mem__fun.html#ga6ed5c519845b36eb7c6461ebd2a073c9" title="Creates a functor of type sigc::mem_functor which wraps a method. ">mem_fun()</a> is used to convert a pointer to a method to a functor. </p>
+<p><a class="el" href="group__mem__fun.html#ga6ed5c519845b36eb7c6461ebd2a073c9" title="Creates a functor of type sigc::mem_functor which wraps a method. ">mem_fun()</a> Creates a functor from a pointer to a method. </p>
 <p>Optionally, a reference or pointer to an object can be bound to the functor.</p>
-<dl class="section note"><dt>Note</dt><dd>Only if the object type inherits from <a class="el" href="structsigc_1_1trackable.html" title="Base class for objects with auto-disconnection. ">sigc::trackable</a>, and the functor returned from <a class="el" href="group__mem__fun.html#ga6ed5c519845b36eb7c6461ebd2a073c9" title="Creates a functor of type sigc::mem_functor which wraps a method. ">mem_fun()</a> is assigned to a <a class="el" href="classsigc_1_1slot.html" title="Converts an arbitrary functor to a unified type which is opaque. ">sigc::slot</a>, is the functor automatically cleared when the object goes out of scope!</dd></dl>
+<dl class="section note"><dt>Note</dt><dd>If the object type inherits from <a class="el" href="structsigc_1_1trackable.html" title="Base class for objects with auto-disconnection. ">sigc::trackable</a>, and the functor returned from <a class="el" href="group__mem__fun.html#ga6ed5c519845b36eb7c6461ebd2a073c9" title="Creates a functor of type sigc::mem_functor which wraps a method. ">mem_fun()</a> is assigned to a <a class="el" href="classsigc_1_1slot.html" title="Converts an arbitrary functor to a unified type which is opaque. ">sigc::slot</a>, the functor will be automatically cleared when the object goes out of scope. Invoking that slot will then have no effect and will not try to use the destroyed instance.</dd></dl>
 <p>If the member function pointer is to an overloaded type, you must specify the types using template arguments starting with the first argument. It is not necessary to supply the return type.</p>
 <dl class="section user"><dt>Example:</dt><dd><div class="fragment"><div class="line"><span class="keyword">struct </span>foo : <span class="keyword">public</span> <a class="code" href="structsigc_1_1trackable.html">sigc::trackable</a></div>
 <div class="line">{</div>
@@ -183,7 +183,7 @@ template &lt;class T_return , class T_obj , class T_obj2 , class... T_arg&gt; </
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 3230570..9194d1a 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -47,7 +47,7 @@
 </div><!--header-->
 <div class="contents">
 
-<p><a class="el" href="group__ptr__fun.html#ga203dd1ac5747cf2f3d2b2d590ad32e82" title="Creates a functor of type sigc::pointer_functor which wraps an existing non-member function...">ptr_fun()</a> is used to convert a pointer to a function to a functor.  
+<p><a class="el" href="group__ptr__fun.html#ga203dd1ac5747cf2f3d2b2d590ad32e82" title="Creates a functor of type sigc::pointer_functor which wraps an existing non-member function...">ptr_fun()</a> creates a functor from a pointer to a function.  
 <a href="#details">More...</a></p>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
@@ -64,7 +64,7 @@ Functions</h2></td></tr>
 <tr class="separator:ga203dd1ac5747cf2f3d2b2d590ad32e82"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p><a class="el" href="group__ptr__fun.html#ga203dd1ac5747cf2f3d2b2d590ad32e82" title="Creates a functor of type sigc::pointer_functor which wraps an existing non-member function...">ptr_fun()</a> is used to convert a pointer to a function to a functor. </p>
+<p><a class="el" href="group__ptr__fun.html#ga203dd1ac5747cf2f3d2b2d590ad32e82" title="Creates a functor of type sigc::pointer_functor which wraps an existing non-member function...">ptr_fun()</a> creates a functor from a pointer to a function. </p>
 <p>If the function pointer is to an overloaded type, you must specify the types using template arguments starting with the first argument. It is not necessary to supply the return type.</p>
 <dl class="section user"><dt>Example:</dt><dd><div class="fragment"><div class="line"><span class="keywordtype">void</span> foo(<span class="keywordtype">int</span>) {}</div>
 <div class="line"><a class="code" href="classsigc_1_1slot.html">sigc::slot&lt;void(int)&gt;</a> sl = <a class="code" href="group__ptr__fun.html#ga203dd1ac5747cf2f3d2b2d590ad32e82">sigc::ptr_fun</a>(&amp;foo);</div>
@@ -120,7 +120,7 @@ template &lt;class T_return , class... T_args&gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 4fdb01e..13f98df 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -202,7 +202,7 @@ template &lt;class T_return , class T_functor &gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 58a795e..05de2a8 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -58,10 +58,10 @@ Modules</h2></td></tr>
 <tr class="memdesc:group__slot"><td class="mdescLeft">&#160;</td><td class="mdescRight">Slots are type-safe representations of callback methods and functions. <br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:group__mem__fun"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mem__fun.html">mem_fun()</a></td></tr>
-<tr class="memdesc:group__mem__fun"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="group__mem__fun.html#ga6ed5c519845b36eb7c6461ebd2a073c9" title="Creates a functor of type sigc::mem_functor which wraps a method. ">mem_fun()</a> is used to convert a pointer to a method to a functor. <br /></td></tr>
+<tr class="memdesc:group__mem__fun"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="group__mem__fun.html#ga6ed5c519845b36eb7c6461ebd2a073c9" title="Creates a functor of type sigc::mem_functor which wraps a method. ">mem_fun()</a> Creates a functor from a pointer to a method. <br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:group__ptr__fun"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ptr__fun.html">ptr_fun()</a></td></tr>
-<tr class="memdesc:group__ptr__fun"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="group__ptr__fun.html#ga203dd1ac5747cf2f3d2b2d590ad32e82" title="Creates a functor of type sigc::pointer_functor which wraps an existing non-member function...">ptr_fun()</a> is used to convert a pointer to a function to a functor. <br /></td></tr>
+<tr class="memdesc:group__ptr__fun"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="group__ptr__fun.html#ga203dd1ac5747cf2f3d2b2d590ad32e82" title="Creates a functor of type sigc::pointer_functor which wraps an existing non-member function...">ptr_fun()</a> creates a functor from a pointer to a function. <br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
@@ -84,9 +84,6 @@ Macros</h2></td></tr>
 <tr class="memitem:ga7a6f5575dc0b0ea896889c782721f6be"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sigcfunctors.html#ga7a6f5575dc0b0ea896889c782721f6be">SIGC_FUNCTOR_TRAIT</a>(T_functor,  T_return)</td></tr>
 <tr class="memdesc:ga7a6f5575dc0b0ea896889c782721f6be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper macro, if you want to mix user-defined and third party functors with libsigc++.  <a href="#ga7a6f5575dc0b0ea896889c782721f6be">More...</a><br /></td></tr>
 <tr class="separator:ga7a6f5575dc0b0ea896889c782721f6be"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gadf1ba3cacb09cc5c3c3e399836ec6e50"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sigcfunctors.html#gadf1ba3cacb09cc5c3c3e399836ec6e50">SIGC_FUNCTORS_DEDUCE_RESULT_TYPE_WITH_DECLTYPE</a></td></tr>
-<tr class="memdesc:gadf1ba3cacb09cc5c3c3e399836ec6e50"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper macro, if you want to mix user-defined and third party functors with libsigc++.  <a href="#gadf1ba3cacb09cc5c3c3e399836ec6e50">More...</a><br /></td></tr>
-<tr class="separator:gadf1ba3cacb09cc5c3c3e399836ec6e50"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga93b6ee8815d90adccfdceed72bcda577"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sigcfunctors.html#ga93b6ee8815d90adccfdceed72bcda577">SIGC_FUNCTORS_HAVE_RESULT_TYPE</a></td></tr>
 <tr class="memdesc:ga93b6ee8815d90adccfdceed72bcda577"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper macro, if you want to mix user-defined and third party functors with libsigc++.  <a href="#ga93b6ee8815d90adccfdceed72bcda577">More...</a><br /></td></tr>
 <tr class="separator:ga93b6ee8815d90adccfdceed72bcda577"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -117,7 +114,7 @@ Functions</h2></td></tr>
 <li>Use the macro <a class="el" href="group__sigcfunctors.html#ga93b6ee8815d90adccfdceed72bcda577" title="Helper macro, if you want to mix user-defined and third party functors with libsigc++. ">SIGC_FUNCTORS_HAVE_RESULT_TYPE</a>, if you want libsigc++ to assume that result_type is defined in all user-defined or third party functors, whose result type can't be deduced in any other way.</li>
 </ul>
 <p>If all these ways to deduce the result type fail, void is assumed.</p>
-<p>With libsigc++ versions before 2.6, the macro <a class="el" href="group__sigcfunctors.html#gadf1ba3cacb09cc5c3c3e399836ec6e50" title="Helper macro, if you want to mix user-defined and third party functors with libsigc++. ">SIGC_FUNCTORS_DEDUCE_RESULT_TYPE_WITH_DECLTYPE</a> activated the test with decltype(). That macro is now unneccesary and deprecated. </p>
+<p>With libsigc++ versions before 2.6, the macro #SIGC_FUNCTORS_DEDUCE_RESULT_TYPE_WITH_DECLTYPE activated the test with decltype(). That macro is now unneccesary and deprecated. </p>
 <h2 class="groupheader">Macro Definition Documentation</h2>
 <a class="anchor" id="ga7a6f5575dc0b0ea896889c782721f6be"></a>
 <div class="memitem">
@@ -152,26 +149,6 @@ Functions</h2></td></tr>
 </div><!-- fragment --> 
 </div>
 </div>
-<a class="anchor" id="gadf1ba3cacb09cc5c3c3e399836ec6e50"></a>
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">#define SIGC_FUNCTORS_DEDUCE_RESULT_TYPE_WITH_DECLTYPE</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-<p>Helper macro, if you want to mix user-defined and third party functors with libsigc++. </p>
-<p>If you want to mix functors not derived from <a class="el" href="structsigc_1_1functor__base.html" title="A hint to the compiler. ">sigc::functor_base</a> with libsigc++, and your compiler can deduce the result type of the functor with the C++11 keyword <code>decltype</code>, use this macro inside namespace sigc like so: </p><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;namespace sigc {</div>
-<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;  SIGC_FUNCTORS_DEDUCE_RESULT_TYPE_WITH_DECLTYPE</div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;}</div>
-</div><!-- fragment --><p>Functors with overloaded operator()() are not supported.</p>
-<dl class="since_2_2_11"><dt><b><a class="el" href="since_2_2_11.html#_since_2_2_11000001">Since libsigc++ 2.2.11:</a></b></dt><dd></dd></dl>
-<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000001">Deprecated:</a></b></dt><dd>This macro does nothing. The test it activated in libsigc++ versions before 2.6, is now unconditionally activated.</dd></dl>
-
-</div>
-</div>
 <a class="anchor" id="ga93b6ee8815d90adccfdceed72bcda577"></a>
 <div class="memitem">
 <div class="memproto">
@@ -251,7 +228,7 @@ template &lt;class T_type , class T_action , class T_functor &gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 4038070..58af42c 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -98,7 +98,7 @@ Classes</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 63aa09f..db18df1 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -61,27 +61,34 @@ Classes</h2></td></tr>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <p>Slots are type-safe representations of callback methods and functions. </p>
 <p>A slot can be constructed from any function object or function, regardless of whether it is a global function, a member method, static, or virtual.</p>
-<p>Use the <a class="el" href="group__mem__fun.html#ga6ed5c519845b36eb7c6461ebd2a073c9" title="Creates a functor of type sigc::mem_functor which wraps a method. ">sigc::mem_fun()</a> and <a class="el" href="group__ptr__fun.html#ga203dd1ac5747cf2f3d2b2d590ad32e82" title="Creates a functor of type sigc::pointer_functor which wraps an existing non-member function...">sigc::ptr_fun()</a> template functions to get a <a class="el" href="classsigc_1_1slot.html" title="Converts an arbitrary functor to a unified type which is opaque. ">sigc::slot</a>, like so: </p><div class="fragment"><div class="line"><a class="code" href="classsigc_1_1slot.html">sigc::slot&lt;void(int)&gt;</a> sl = <a class="code" href="group__mem__fun.html#ga6ed5c519845b36eb7c6461ebd2a073c9">sigc::mem_fun</a>(someobj,&amp; SomeClass::somemethod);</div>
+<h1><a class="anchor" id="slots-creating"></a>
+Creating Slots</h1>
+<p>Use the <a class="el" href="group__mem__fun.html#ga6ed5c519845b36eb7c6461ebd2a073c9" title="Creates a functor of type sigc::mem_functor which wraps a method. ">sigc::mem_fun()</a> or <a class="el" href="group__ptr__fun.html#ga203dd1ac5747cf2f3d2b2d590ad32e82" title="Creates a functor of type sigc::pointer_functor which wraps an existing non-member function...">sigc::ptr_fun()</a> template functions to get a <a class="el" href="classsigc_1_1slot.html" title="Converts an arbitrary functor to a unified type which is opaque. ">sigc::slot</a>, like so: </p><div class="fragment"><div class="line"><a class="code" href="classsigc_1_1slot.html">sigc::slot&lt;void(int)&gt;</a> sl = <a class="code" href="group__mem__fun.html#ga6ed5c519845b36eb7c6461ebd2a073c9">sigc::mem_fun</a>(someobj,&amp; SomeClass::somemethod);</div>
 </div><!-- fragment --><p> or </p><div class="fragment"><div class="line"><a class="code" href="classsigc_1_1slot.html">sigc::slot&lt;void(int)&gt;</a> sl = <a class="code" href="group__ptr__fun.html#ga203dd1ac5747cf2f3d2b2d590ad32e82">sigc::ptr_fun</a>(&amp;somefunction);</div>
 </div><!-- fragment --><p> or, in gtkmm, </p><div class="fragment"><div class="line">m_Button.signal_clicked().connect( <a class="code" href="group__mem__fun.html#ga6ed5c519845b36eb7c6461ebd2a073c9">sigc::mem_fun</a>(*<span class="keyword">this</span>, &amp;MyWindow::on_button_clicked) );</div>
 </div><!-- fragment --><p>The compiler will complain if SomeClass::somemethod, etc. have the wrong signature.</p>
 <p>You can also pass slots as method parameters where you might normally pass a function pointer.</p>
+<h1><a class="anchor" id="slots-auto-disconnect"></a>
+Member Methods and Automatic Disconnection</h1>
+<p>See <a class="el" href="group__mem__fun.html">sigc::mem_fun()</a> about deriving from <a class="el" href="structsigc_1_1trackable.html" title="Base class for objects with auto-disconnection. ">sigc::trackable</a> to prevent member methods from being called after the instance has been destroyed.</p>
+<h1><a class="anchor" id="slots-auto"></a>
+auto</h1>
 <p><a class="el" href="group__mem__fun.html#ga6ed5c519845b36eb7c6461ebd2a073c9" title="Creates a functor of type sigc::mem_functor which wraps a method. ">sigc::mem_fun()</a> and <a class="el" href="group__ptr__fun.html#ga203dd1ac5747cf2f3d2b2d590ad32e82" title="Creates a functor of type sigc::pointer_functor which wraps an existing non-member function...">sigc::ptr_fun()</a> return functors, but those functors are not slots. </p><div class="fragment"><div class="line"><a class="code" href="classsigc_1_1slot.html">sigc::slot&lt;void(int)&gt;</a> sl = <a class="code" href="group__mem__fun.html#ga6ed5c519845b36eb7c6461ebd2a073c9">sigc::mem_fun</a>(someobj,&amp; SomeClass::somemethod);</div>
 </div><!-- fragment --><p> is not equivalent to </p><div class="fragment"><div class="line"><span class="keyword">auto</span> sl = <a class="code" href="group__mem__fun.html#ga6ed5c519845b36eb7c6461ebd2a073c9">sigc::mem_fun</a>(someobj, &amp;SomeClass::somemethod); <span class="comment">// Not a slot!</span></div>
-</div><!-- fragment --><p>A C++11 lambda expression is a functor (function object). It is automatically wrapped in a slot, if it is connected to a signal. </p><div class="fragment"><div class="line"><span class="keyword">auto</span> on_response = [&amp;someobj] (<span class="keywordtype">int</span> response_id)</div>
+</div><!-- fragment --><p>If you don't explicitly use a <a class="el" href="classsigc_1_1slot.html" title="Converts an arbitrary functor to a unified type which is opaque. ">sigc::slot</a> then the slot could call a method on an instance after it has been destroyed even if the method is in a class that derives from <a class="el" href="structsigc_1_1trackable.html" title="Base class for objects with auto-disconnection. ">sigc::trackable</a>.</p>
+<h1><a class="anchor" id="slots-with-lambdas"></a>
+C++ Lambdas</h1>
+<p>A C++11 lambda expression is a functor (function object). It is automatically wrapped in a slot, if it is connected to a signal. </p><div class="fragment"><div class="line"><span class="keyword">auto</span> on_response = [&amp;someobj] (<span class="keywordtype">int</span> response_id)</div>
 <div class="line">  {</div>
 <div class="line">    someobj.somemethod(response_id);</div>
 <div class="line">    somefunction(response_id);</div>
 <div class="line">  };</div>
 <div class="line">m_Dialog.signal_response().connect(on_response);</div>
-</div><!-- fragment --><p>If you connect a C++11 lambda expression or a std::function&lt;&gt; instance to a signal or assign it to a slot,</p><ul>
-<li>With libsigc++ versions before 2.6, if the return type is not void, you must use the <a class="el" href="group__sigcfunctors.html#gadf1ba3cacb09cc5c3c3e399836ec6e50" title="Helper macro, if you want to mix user-defined and third party functors with libsigc++. ">SIGC_FUNCTORS_DEDUCE_RESULT_TYPE_WITH_DECLTYPE</a> macro,</li>
-<li>if your functor contains references to <a class="el" href="structsigc_1_1trackable.html" title="Base class for objects with auto-disconnection. ">sigc::trackable</a> derived objects, those objects will not be tracked, unless you also use <a class="el" href="group__track__obj.html#ga2d8c46509a25df9c7ad37b8712d16ab1" title="Creates an adaptor of type sigc::track_obj_functor which wraps a functor. ">sigc::track_obj()</a>. </li>
-</ul>
+</div><!-- fragment --><p>If you connect a C++11 lambda expression or a std::function&lt;&gt; instance to a signal or assign it to a slot, if your functor contains references to <a class="el" href="structsigc_1_1trackable.html" title="Base class for objects with auto-disconnection. ">sigc::trackable</a> derived objects, those objects will not be tracked, unless you also use <a class="el" href="group__track__obj.html#ga2d8c46509a25df9c7ad37b8712d16ab1" title="Creates an adaptor of type sigc::track_obj_functor which wraps a functor. ">sigc::track_obj()</a>. </p>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 2d759f9..0495e2d 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -130,7 +130,7 @@ template &lt;typename T_functor , typename... T_obj&gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 1350f3b..28f4489 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -122,7 +122,7 @@ This inheritance list is sorted roughly, but not completely, alphabetically:</di
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index d4f499a..362a4da 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -77,14 +77,11 @@ Using CMake</h2>
 <div class="line">pkg_check_modules(DEPS REQUIRED <a class="code" href="namespacesigc.html">sigc</a>++-3.0)</div>
 <div class="line">include_directories(${DEPS_INCLUDE_DIRS})</div>
 <div class="line">target_link_libraries(yourprogram ${DEPS_LIBRARIES})</div>
-</div><!-- fragment --><p>Your <code>pkg_check_modules()</code> call should also mention any other libraries that you need to use via pkg-config.</p>
-<h1><a class="anchor" id="scope"></a>
-Scope of Documentation</h1>
-<p>libsigc++ contains many template functions and template classes/structs, some with many specializations. This reference manual does not show all specializations of those templates that hardly any user will use directly. </p>
+</div><!-- fragment --><p>Your <code>pkg_check_modules()</code> call should also mention any other libraries that you need to use via pkg-config. </p>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index d5a7d77..da62a9b 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index d7b6c97..b32656c 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
 <tr id="row_0_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__track__obj.html" target="_self">track_obj()</a></td><td class="desc"><a class="el" href="group__track__obj.html#ga2d8c46509a25df9c7ad37b8712d16ab1" title="Creates an adaptor of type sigc::track_obj_functor which wraps a functor. ">Sigc::track_obj()</a> tracks trackable objects, referenced from a functor </td></tr>
 <tr id="row_1_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_1_" class="arrow" onclick="toggleFolder('1_')">&#9660;</span><a class="el" href="group__sigcfunctors.html" target="_self">Functors</a></td><td class="desc">Functors are copyable types that define operator()() </td></tr>
 <tr id="row_1_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__slot.html" target="_self">Slots</a></td><td class="desc">Slots are type-safe representations of callback methods and functions </td></tr>
-<tr id="row_1_1_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__mem__fun.html" target="_self">mem_fun()</a></td><td class="desc">Mem_fun() is used to convert a pointer to a method to a functor </td></tr>
-<tr id="row_1_2_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__ptr__fun.html" target="_self">ptr_fun()</a></td><td class="desc">Ptr_fun() is used to convert a pointer to a function to a functor </td></tr>
+<tr id="row_1_1_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__mem__fun.html" target="_self">mem_fun()</a></td><td class="desc">Mem_fun() Creates a functor from a pointer to a method </td></tr>
+<tr id="row_1_2_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__ptr__fun.html" target="_self">ptr_fun()</a></td><td class="desc">Ptr_fun() creates a functor from a pointer to a function </td></tr>
 <tr id="row_2_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="group__signal.html" target="_self">Signals</a></td><td class="desc">Use sigc::signal::connect() with <a class="el" href="group__mem__fun.html#ga6ed5c519845b36eb7c6461ebd2a073c9" title="Creates a functor of type sigc::mem_functor which wraps a method. ">sigc::mem_fun()</a> and <a class="el" href="group__ptr__fun.html#ga203dd1ac5747cf2f3d2b2d590ad32e82" title="Creates a functor of type sigc::pointer_functor which wraps an existing non-member function...">sigc::ptr_fun()</a> to connect a method or function with a signal </td></tr>
 </table>
 </div><!-- directory -->
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index e3cc279..c3783a7 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 9aab13b..67a8498 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -99,7 +99,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 649a671..43b5c86 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -63,7 +63,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index d8ed9d7..9171ec9 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -57,7 +57,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 557ff8f..081d839 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -396,7 +396,7 @@ template &lt;class T_type &gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index cbee73f..13a7ab3 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
 <div class="textblock">Here is a list of all related documentation pages:</div><div class="directory">
 <table class="directory">
 <tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="since_2_4.html" target="_self">New API in libsigc++ 2.4</a></td><td class="desc"></td></tr>
-<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="since_2_2_11.html" target="_self">New API in libsigc++ 2.2.11</a></td><td class="desc"></td></tr>
-<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="since_2_8.html" target="_self">New API in libsigc++ 2.8</a></td><td class="desc"></td></tr>
-<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="deprecated.html" target="_self">Deprecated List</a></td><td class="desc"></td></tr>
+<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="since_2_8.html" target="_self">New API in libsigc++ 2.8</a></td><td class="desc"></td></tr>
 </table>
 </div><!-- directory -->
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/docs/reference/html/since_2_2_11.html b/docs/reference/html/since_2_2_11.html
deleted file mode 100644 (file)
index a599d29..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.9.1"/>
-<title>libsigc++: New API in libsigc++ 2.2.11</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-<link href="doxygen-extra.css" rel="stylesheet" type="text/css"/>
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
-  <td style="padding-left: 0.5em;">
-   <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
-   </div>
-  </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.9.1 -->
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li class="current"><a href="pages.html"><span>Related&#160;Pages</span></a></li>
-      <li><a href="modules.html"><span>Modules</span></a></li>
-      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
-      <li><a href="annotated.html"><span>Classes</span></a></li>
-    </ul>
-  </div>
-</div><!-- top -->
-<div class="header">
-  <div class="headertitle">
-<div class="title">New API in libsigc++ 2.2.11 </div>  </div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock"><dl class="reflist">
-<dt><a class="anchor" id="_since_2_2_11000001"></a>globalScope&gt; Member <a class="el" href="group__sigcfunctors.html#gadf1ba3cacb09cc5c3c3e399836ec6e50">SIGC_FUNCTORS_DEDUCE_RESULT_TYPE_WITH_DECLTYPE</a>  </dt>
-<dd></dd>
-</dl>
-</div></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.9.1
-</small></address>
-</body>
-</html>
index f1f60e8..e9dc9ca 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -60,7 +60,7 @@
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 0346184..619ecf1 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -54,7 +54,7 @@
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index cdbc317..7098688 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -75,7 +75,7 @@ Inheritance diagram for sigc::adaptor_base:</div>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 31bb9cd..38adbf0 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -58,7 +58,7 @@
 
 <p>This is the complete list of members for <a class="el" href="structsigc_1_1adaptor__functor.html">sigc::adaptor_functor&lt; T_functor &gt;</a>, including all inherited members.</p>
 <table class="directory">
-  <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1adaptor__functor.html#a39ef4610f8e0f03425b6f4a44b59e5fb">adaptor_functor</a>()</td><td class="entry"><a class="el" href="structsigc_1_1adaptor__functor.html">sigc::adaptor_functor&lt; T_functor &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1adaptor__functor.html#a35ecf04af30830154f9ced6ddb9401a7">adaptor_functor</a>()=default</td><td class="entry"><a class="el" href="structsigc_1_1adaptor__functor.html">sigc::adaptor_functor&lt; T_functor &gt;</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="structsigc_1_1adaptor__functor.html#ac5907212f7ee2eadf10b31757a0c5930">adaptor_functor</a>(const T_functor&amp; _A_functor)</td><td class="entry"><a class="el" href="structsigc_1_1adaptor__functor.html">sigc::adaptor_functor&lt; T_functor &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1adaptor__functor.html#af765e401002eb15f18aca5cfaa678b01">adaptor_functor</a>(const T_type&amp; _A_type)</td><td class="entry"><a class="el" href="structsigc_1_1adaptor__functor.html">sigc::adaptor_functor&lt; T_functor &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
   <tr><td class="entry"><a class="el" href="structsigc_1_1adaptor__functor.html#a4faff6b7a82f4f6d92e3d3b0aa8fdca8">functor_</a></td><td class="entry"><a class="el" href="structsigc_1_1adaptor__functor.html">sigc::adaptor_functor&lt; T_functor &gt;</a></td><td class="entry"><span class="mlabel">mutable</span></td></tr>
@@ -68,7 +68,7 @@
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 479e3b0..d1791f5 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -80,9 +80,9 @@ Public Types</h2></td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:a39ef4610f8e0f03425b6f4a44b59e5fb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1adaptor__functor.html#a39ef4610f8e0f03425b6f4a44b59e5fb">adaptor_functor</a> ()</td></tr>
-<tr class="memdesc:a39ef4610f8e0f03425b6f4a44b59e5fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an invalid functor.  <a href="#a39ef4610f8e0f03425b6f4a44b59e5fb">More...</a><br /></td></tr>
-<tr class="separator:a39ef4610f8e0f03425b6f4a44b59e5fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a35ecf04af30830154f9ced6ddb9401a7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1adaptor__functor.html#a35ecf04af30830154f9ced6ddb9401a7">adaptor_functor</a> ()=default</td></tr>
+<tr class="memdesc:a35ecf04af30830154f9ced6ddb9401a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an invalid functor.  <a href="#a35ecf04af30830154f9ced6ddb9401a7">More...</a><br /></td></tr>
+<tr class="separator:a35ecf04af30830154f9ced6ddb9401a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ac5907212f7ee2eadf10b31757a0c5930"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1adaptor__functor.html#ac5907212f7ee2eadf10b31757a0c5930">adaptor_functor</a> (const T_functor&amp; _A_functor)</td></tr>
 <tr class="memdesc:ac5907212f7ee2eadf10b31757a0c5930"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an <a class="el" href="structsigc_1_1adaptor__functor.html" title="Converts an arbitrary functor into an adaptor type. ">adaptor_functor</a> object that wraps the passed functor.  <a href="#ac5907212f7ee2eadf10b31757a0c5930">More...</a><br /></td></tr>
 <tr class="separator:ac5907212f7ee2eadf10b31757a0c5930"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -128,7 +128,7 @@ template &lt;class T_functor &gt; </div>
 </div>
 </div>
 <h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a class="anchor" id="a39ef4610f8e0f03425b6f4a44b59e5fb"></a>
+<a class="anchor" id="a35ecf04af30830154f9ced6ddb9401a7"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -146,7 +146,7 @@ template &lt;class T_functor &gt; </div>
       </table>
   </td>
   <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+<span class="mlabels"><span class="mlabel">default</span></span>  </td>
   </tr>
 </table>
 </div><div class="memdoc">
@@ -319,7 +319,7 @@ template &lt;class T_functor &gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 6503f09..c599820 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -70,7 +70,7 @@ struct sigc::adaptor_trait&lt; T_functor, I_isadaptor &gt;</h3>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 419a4ba..32569ba 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -64,7 +64,7 @@
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index b07be35..f2ec698 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -125,7 +125,7 @@ template &lt;class T_functor &gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index e5cb71d..73c5f22 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -64,7 +64,7 @@
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 87796ee..ccb03f6 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -125,7 +125,7 @@ template &lt;class T_functor &gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 0524ea9..02e9c7b 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -65,7 +65,7 @@
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index aafb7a8..5b3530d 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -232,7 +232,7 @@ template &lt;class T_functor&gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index ee5c42d..af87000 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -67,7 +67,7 @@
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index a3f4a1b..5c2149a 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -232,7 +232,7 @@ template &lt;class... T_arg&gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 52f259f..403f772 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -68,7 +68,7 @@
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 2121320..2d86b6f 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -248,7 +248,7 @@ template &lt;class T_functor , class... T_type&gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 7eccb87..7f39c9e 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -69,7 +69,7 @@
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 30116e5..e530c9e 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -259,7 +259,7 @@ template &lt;class T_return , class T_functor &gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index a0caf40..e7eb9f4 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -71,7 +71,7 @@
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index e8b4025..1e79af1 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -298,7 +298,7 @@ template &lt;class T_setter , class T_getter &gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 2f5d68f..a576cfd 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -73,7 +73,7 @@
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 0c88637..c9b6dd6 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -338,7 +338,7 @@ template &lt;class T_setter , class T_getter1 , class T_getter2 &gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 74d08e1..f8e0351 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -77,7 +77,7 @@
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 38285e3..87f5bea 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -539,7 +539,7 @@ template &lt;typename T_slot &gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index defc7f9..fc6d6d2 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -69,7 +69,7 @@
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index b34474f..63ee891 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -243,7 +243,7 @@ template &lt;class T_functor , class T_catcher , class T_return  = typename adap
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 677b21f..5b58c2d 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
   <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html#abcc5844536e9fe6e2260c3b55a4da668">adaptor_type</a> typedef</td><td class="entry"><a class="el" href="structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html">sigc::exception_catch_functor&lt; T_functor, T_catcher, void &gt;</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="structsigc_1_1adapts.html#a947b69ccbdcabd4ef4163dcab96096f8">adapts</a>(const T_functor&amp; _A_functor)</td><td class="entry"><a class="el" href="structsigc_1_1adapts.html">sigc::adapts&lt; T_functor &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html#acc50467493545db2b55e638f7ac28c42">catcher_</a></td><td class="entry"><a class="el" href="structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html">sigc::exception_catch_functor&lt; T_functor, T_catcher, void &gt;</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html#a84b167dc0dd520253776c55eb711c461">exception_catch_functor</a>()</td><td class="entry"><a class="el" href="structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html">sigc::exception_catch_functor&lt; T_functor, T_catcher, void &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html#af98f46c6e103e71aed307487a8bc01db">exception_catch_functor</a>()=default</td><td class="entry"><a class="el" href="structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html">sigc::exception_catch_functor&lt; T_functor, T_catcher, void &gt;</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html#a08a5ce7a94a0646e92c5eb8fb6b7d5f3">exception_catch_functor</a>(const T_functor&amp; _A_func, const T_catcher&amp; _A_catcher)</td><td class="entry"><a class="el" href="structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html">sigc::exception_catch_functor&lt; T_functor, T_catcher, void &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr><td class="entry"><a class="el" href="structsigc_1_1adapts.html#a2f4b37eb160708baf17de57f2abce7a7">functor_</a></td><td class="entry"><a class="el" href="structsigc_1_1adapts.html">sigc::adapts&lt; T_functor &gt;</a></td><td class="entry"><span class="mlabel">mutable</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html#a556b5cd6fb6f0675d85ea2f7e45158f1">operator()</a>(T_arg..._A_a)</td><td class="entry"><a class="el" href="structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html">sigc::exception_catch_functor&lt; T_functor, T_catcher, void &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr><td class="entry"><a class="el" href="structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html#a9b4a1e5696d501ec3e8a46c79a3eea35">result_type</a> typedef</td><td class="entry"><a class="el" href="structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html">sigc::exception_catch_functor&lt; T_functor, T_catcher, void &gt;</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html#a1537e7d0175046d65522bd960149bb62">~exception_catch_functor</a>()</td><td class="entry"><a class="el" href="structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html">sigc::exception_catch_functor&lt; T_functor, T_catcher, void &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html#ae50571594945757cc4af73b52f9ac656">~exception_catch_functor</a>()=default</td><td class="entry"><a class="el" href="structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html">sigc::exception_catch_functor&lt; T_functor, T_catcher, void &gt;</a></td><td class="entry"></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index b4b3d1f..1652946 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -84,12 +84,12 @@ Public Types</h2></td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:a84b167dc0dd520253776c55eb711c461"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html#a84b167dc0dd520253776c55eb711c461">exception_catch_functor</a> ()</td></tr>
-<tr class="separator:a84b167dc0dd520253776c55eb711c461"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af98f46c6e103e71aed307487a8bc01db"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html#af98f46c6e103e71aed307487a8bc01db">exception_catch_functor</a> ()=default</td></tr>
+<tr class="separator:af98f46c6e103e71aed307487a8bc01db"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a08a5ce7a94a0646e92c5eb8fb6b7d5f3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html#a08a5ce7a94a0646e92c5eb8fb6b7d5f3">exception_catch_functor</a> (const T_functor&amp; _A_func, const T_catcher&amp; _A_catcher)</td></tr>
 <tr class="separator:a08a5ce7a94a0646e92c5eb8fb6b7d5f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1537e7d0175046d65522bd960149bb62"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html#a1537e7d0175046d65522bd960149bb62">~exception_catch_functor</a> ()</td></tr>
-<tr class="separator:a1537e7d0175046d65522bd960149bb62"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae50571594945757cc4af73b52f9ac656"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html#ae50571594945757cc4af73b52f9ac656">~exception_catch_functor</a> ()=default</td></tr>
+<tr class="separator:ae50571594945757cc4af73b52f9ac656"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a556b5cd6fb6f0675d85ea2f7e45158f1"><td class="memTemplParams" colspan="2">template&lt;class... T_arg&gt; </td></tr>
 <tr class="memitem:a556b5cd6fb6f0675d85ea2f7e45158f1"><td class="memTemplItemLeft" align="right" valign="top">decltype(auto)&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html#a556b5cd6fb6f0675d85ea2f7e45158f1">operator()</a> (T_arg..._A_a)</td></tr>
 <tr class="separator:a556b5cd6fb6f0675d85ea2f7e45158f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -137,7 +137,7 @@ template &lt;class T_functor , class T_catcher &gt; </div>
 </div>
 </div>
 <h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a class="anchor" id="a84b167dc0dd520253776c55eb711c461"></a>
+<a class="anchor" id="af98f46c6e103e71aed307487a8bc01db"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -155,7 +155,7 @@ template &lt;class T_functor , class T_catcher &gt; </div>
       </table>
   </td>
   <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+<span class="mlabels"><span class="mlabel">default</span></span>  </td>
   </tr>
 </table>
 </div><div class="memdoc">
@@ -198,7 +198,7 @@ template &lt;class T_functor , class T_catcher &gt; </div>
 
 </div>
 </div>
-<a class="anchor" id="a1537e7d0175046d65522bd960149bb62"></a>
+<a class="anchor" id="ae50571594945757cc4af73b52f9ac656"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -216,7 +216,7 @@ template &lt;class T_functor , class T_catcher &gt; </div>
       </table>
   </td>
   <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+<span class="mlabels"><span class="mlabel">default</span></span>  </td>
   </tr>
 </table>
 </div><div class="memdoc">
@@ -270,7 +270,7 @@ template &lt;class T_functor , class T_catcher &gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 0b0ed20..f932de9 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -73,7 +73,7 @@ Inheritance diagram for sigc::functor_base:</div>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 6c73bfd..cf6c3ee 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -63,7 +63,7 @@
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index e5dea73..4b3ae83 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -72,7 +72,7 @@ Public Types</h2></td></tr>
 <tr class="separator:a8fdb1c2faa79642fea821ab1052dfd40"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><h3>template&lt;class T_functor, bool I_derives_functor_base = std::is_base_of&lt;functor_base,T_functor&gt;::value, bool I_can_use_decltype = can_deduce_result_type_with_decltype&lt;T_functor&gt;::value&gt;<br />
+<div class="textblock"><h3>template&lt;class T_functor, bool I_derives_functor_base = std::is_base_of&lt;functor_base, T_functor&gt;::value, bool I_can_use_decltype = can_deduce_result_type_with_decltype&lt;T_functor&gt;::value&gt;<br />
 struct sigc::functor_trait&lt; T_functor, I_derives_functor_base, I_can_use_decltype &gt;</h3>
 
 <p>Trait that specifies the return type of any type. </p>
@@ -90,7 +90,7 @@ struct sigc::functor_trait&lt; T_functor, I_derives_functor_base, I_can_use_decl
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
-template &lt;class T_functor, bool I_derives_functor_base = std::is_base_of&lt;functor_base,T_functor&gt;::value, bool I_can_use_decltype = can_deduce_result_type_with_decltype&lt;T_functor&gt;::value&gt; </div>
+template &lt;class T_functor, bool I_derives_functor_base = std::is_base_of&lt;functor_base, T_functor&gt;::value, bool I_can_use_decltype = can_deduce_result_type_with_decltype&lt;T_functor&gt;::value&gt; </div>
       <table class="memname">
         <tr>
           <td class="memname">using <a class="el" href="structsigc_1_1functor__trait.html">sigc::functor_trait</a>&lt; T_functor, I_derives_functor_base, I_can_use_decltype &gt;::<a class="el" href="structsigc_1_1functor__trait.html#aab859f8b89c8e68d53f05506970b217e">functor_type</a> =  T_functor</td>
@@ -104,7 +104,7 @@ template &lt;class T_functor, bool I_derives_functor_base = std::is_base_of&lt;f
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
-template &lt;class T_functor, bool I_derives_functor_base = std::is_base_of&lt;functor_base,T_functor&gt;::value, bool I_can_use_decltype = can_deduce_result_type_with_decltype&lt;T_functor&gt;::value&gt; </div>
+template &lt;class T_functor, bool I_derives_functor_base = std::is_base_of&lt;functor_base, T_functor&gt;::value, bool I_can_use_decltype = can_deduce_result_type_with_decltype&lt;T_functor&gt;::value&gt; </div>
       <table class="memname">
         <tr>
           <td class="memname">using <a class="el" href="structsigc_1_1functor__trait.html">sigc::functor_trait</a>&lt; T_functor, I_derives_functor_base, I_can_use_decltype &gt;::<a class="el" href="structsigc_1_1functor__trait.html#a8fdb1c2faa79642fea821ab1052dfd40">result_type</a> =  void</td>
@@ -117,7 +117,7 @@ template &lt;class T_functor, bool I_derives_functor_base = std::is_base_of&lt;f
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 484d9ea..8f96fd2 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -67,7 +67,7 @@
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 8fe52b7..854f090 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -221,7 +221,7 @@ template &lt;class... T_arg&gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index bd7b10c..695ad50 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -62,7 +62,7 @@
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 40396fd..9bceaaf 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -89,7 +89,7 @@ Public Types</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 32b03fd..1652c88 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -67,7 +67,7 @@
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 6188d32..b70f2cc 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -210,7 +210,7 @@ template &lt;class... T_arg&gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 17c6981..27cc179 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
   <tr><td class="entry"><a class="el" href="structsigc_1_1retype__return__functor.html#a4cf9725b7ac4fdfeded4ab3f56d61a88">operator()</a>()</td><td class="entry"><a class="el" href="structsigc_1_1retype__return__functor.html">sigc::retype_return_functor&lt; T_return, T_functor &gt;</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1retype__return__functor.html#aab4cb6f79ea0bd98e21ad787b4cf26c8">operator()</a>(T_arg&amp;&amp;..._A_a)</td><td class="entry"><a class="el" href="structsigc_1_1retype__return__functor.html">sigc::retype_return_functor&lt; T_return, T_functor &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr><td class="entry"><a class="el" href="structsigc_1_1retype__return__functor.html#a0323ae19dd5c77474549a1b68a996be2">result_type</a> typedef</td><td class="entry"><a class="el" href="structsigc_1_1retype__return__functor.html">sigc::retype_return_functor&lt; T_return, T_functor &gt;</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1retype__return__functor.html#aa9546db86a6d1cfa7224a3a0cbad4827">retype_return_functor</a>()</td><td class="entry"><a class="el" href="structsigc_1_1retype__return__functor.html">sigc::retype_return_functor&lt; T_return, T_functor &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1retype__return__functor.html#a59293dcbd669f21528d027d89b205a9b">retype_return_functor</a>()=default</td><td class="entry"><a class="el" href="structsigc_1_1retype__return__functor.html">sigc::retype_return_functor&lt; T_return, T_functor &gt;</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="structsigc_1_1retype__return__functor.html#a9ebfb2a6cfb5125b0705c0adef2cbfb8">retype_return_functor</a>(type_trait_take_t&lt; T_functor &gt; _A_functor)</td><td class="entry"><a class="el" href="structsigc_1_1retype__return__functor.html">sigc::retype_return_functor&lt; T_return, T_functor &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 6680fa7..21ad7d7 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -84,8 +84,8 @@ Public Types</h2></td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:aa9546db86a6d1cfa7224a3a0cbad4827"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1retype__return__functor.html#aa9546db86a6d1cfa7224a3a0cbad4827">retype_return_functor</a> ()</td></tr>
-<tr class="separator:aa9546db86a6d1cfa7224a3a0cbad4827"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a59293dcbd669f21528d027d89b205a9b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1retype__return__functor.html#a59293dcbd669f21528d027d89b205a9b">retype_return_functor</a> ()=default</td></tr>
+<tr class="separator:a59293dcbd669f21528d027d89b205a9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a9ebfb2a6cfb5125b0705c0adef2cbfb8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1retype__return__functor.html#a9ebfb2a6cfb5125b0705c0adef2cbfb8">retype_return_functor</a> (<a class="el" href="namespacesigc.html#aa0d56c61023af35c47b79db80b32fd2e">type_trait_take_t</a>&lt; T_functor &gt; _A_functor)</td></tr>
 <tr class="memdesc:a9ebfb2a6cfb5125b0705c0adef2cbfb8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a <a class="el" href="structsigc_1_1retype__return__functor.html" title="Adaptor that performs a C-style cast on the return value of a functor. ">retype_return_functor</a> object that perform a C-style cast on the return value of the passed functor.  <a href="#a9ebfb2a6cfb5125b0705c0adef2cbfb8">More...</a><br /></td></tr>
 <tr class="separator:a9ebfb2a6cfb5125b0705c0adef2cbfb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -132,7 +132,7 @@ template &lt;class T_return , class T_functor &gt; </div>
 </div>
 </div>
 <h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a class="anchor" id="aa9546db86a6d1cfa7224a3a0cbad4827"></a>
+<a class="anchor" id="a59293dcbd669f21528d027d89b205a9b"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -150,7 +150,7 @@ template &lt;class T_return , class T_functor &gt; </div>
       </table>
   </td>
   <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+<span class="mlabels"><span class="mlabel">default</span></span>  </td>
   </tr>
 </table>
 </div><div class="memdoc">
@@ -240,7 +240,7 @@ template &lt;class... T_arg&gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 7945d79..4030778 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
   <tr><td class="entry"><a class="el" href="structsigc_1_1retype__return__functor_3_01void_00_01T__functor_01_4.html#af181f5a8134c5a834e2ad0ed7590fbfe">operator()</a>()</td><td class="entry"><a class="el" href="structsigc_1_1retype__return__functor_3_01void_00_01T__functor_01_4.html">sigc::retype_return_functor&lt; void, T_functor &gt;</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1retype__return__functor_3_01void_00_01T__functor_01_4.html#aa2ed17928b003633490cc4d889d9d790">operator()</a>(T_arg..._A_a)</td><td class="entry"><a class="el" href="structsigc_1_1retype__return__functor_3_01void_00_01T__functor_01_4.html">sigc::retype_return_functor&lt; void, T_functor &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr><td class="entry"><a class="el" href="structsigc_1_1retype__return__functor_3_01void_00_01T__functor_01_4.html#a82f2e5d601a949a329e47b16ccfae220">result_type</a> typedef</td><td class="entry"><a class="el" href="structsigc_1_1retype__return__functor_3_01void_00_01T__functor_01_4.html">sigc::retype_return_functor&lt; void, T_functor &gt;</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1retype__return__functor_3_01void_00_01T__functor_01_4.html#a720e802de29a72d1e15626b1719844bc">retype_return_functor</a>()</td><td class="entry"><a class="el" href="structsigc_1_1retype__return__functor_3_01void_00_01T__functor_01_4.html">sigc::retype_return_functor&lt; void, T_functor &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1retype__return__functor_3_01void_00_01T__functor_01_4.html#a541afde21dab200b4461e6d5f2955665">retype_return_functor</a>()=default</td><td class="entry"><a class="el" href="structsigc_1_1retype__return__functor_3_01void_00_01T__functor_01_4.html">sigc::retype_return_functor&lt; void, T_functor &gt;</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="structsigc_1_1retype__return__functor_3_01void_00_01T__functor_01_4.html#acd4789babb601ac5bee163651d89f3c8">retype_return_functor</a>(type_trait_take_t&lt; T_functor &gt; _A_functor)</td><td class="entry"><a class="el" href="structsigc_1_1retype__return__functor_3_01void_00_01T__functor_01_4.html">sigc::retype_return_functor&lt; void, T_functor &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 56b71de..f25cf08 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -84,8 +84,8 @@ Public Types</h2></td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:a720e802de29a72d1e15626b1719844bc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1retype__return__functor_3_01void_00_01T__functor_01_4.html#a720e802de29a72d1e15626b1719844bc">retype_return_functor</a> ()</td></tr>
-<tr class="separator:a720e802de29a72d1e15626b1719844bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a541afde21dab200b4461e6d5f2955665"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1retype__return__functor_3_01void_00_01T__functor_01_4.html#a541afde21dab200b4461e6d5f2955665">retype_return_functor</a> ()=default</td></tr>
+<tr class="separator:a541afde21dab200b4461e6d5f2955665"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:acd4789babb601ac5bee163651d89f3c8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1retype__return__functor_3_01void_00_01T__functor_01_4.html#acd4789babb601ac5bee163651d89f3c8">retype_return_functor</a> (<a class="el" href="namespacesigc.html#aa0d56c61023af35c47b79db80b32fd2e">type_trait_take_t</a>&lt; T_functor &gt; _A_functor)</td></tr>
 <tr class="separator:acd4789babb601ac5bee163651d89f3c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:af181f5a8134c5a834e2ad0ed7590fbfe"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1retype__return__functor_3_01void_00_01T__functor_01_4.html#af181f5a8134c5a834e2ad0ed7590fbfe">operator()</a> ()</td></tr>
@@ -127,7 +127,7 @@ template &lt;class T_functor &gt; </div>
 </div>
 </div>
 <h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a class="anchor" id="a720e802de29a72d1e15626b1719844bc"></a>
+<a class="anchor" id="a541afde21dab200b4461e6d5f2955665"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -145,7 +145,7 @@ template &lt;class T_functor &gt; </div>
       </table>
   </td>
   <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+<span class="mlabels"><span class="mlabel">default</span></span>  </td>
   </tr>
 </table>
 </div><div class="memdoc">
@@ -227,7 +227,7 @@ template &lt;class... T_arg&gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index dbbbba1..c32fc65 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -92,7 +92,7 @@
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 5334fd4..510630f 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -718,7 +718,7 @@ Protected Attributes</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 7bbb0da..140fac2 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
   <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1slot__const__iterator.html#a2e9d54907fa65dc0bb05d113f5f407bf">pointer</a> typedef</td><td class="entry"><a class="el" href="structsigc_1_1slot__const__iterator.html">sigc::slot_const_iterator&lt; T_slot &gt;</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="structsigc_1_1slot__const__iterator.html#a9817b5d45be29937164f83f6569bb133">reference</a> typedef</td><td class="entry"><a class="el" href="structsigc_1_1slot__const__iterator.html">sigc::slot_const_iterator&lt; T_slot &gt;</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1slot__const__iterator.html#abf8e9b1e26245b826edcc6eda1dfb0b2">size_type</a> typedef</td><td class="entry"><a class="el" href="structsigc_1_1slot__const__iterator.html">sigc::slot_const_iterator&lt; T_slot &gt;</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structsigc_1_1slot__const__iterator.html#a2b9e80b87a3400bb6f794c07f90d2d47">slot_const_iterator</a>()</td><td class="entry"><a class="el" href="structsigc_1_1slot__const__iterator.html">sigc::slot_const_iterator&lt; T_slot &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="structsigc_1_1slot__const__iterator.html#ab6ef32d4816c355b290fdd19773a9c5a">slot_const_iterator</a>()=default</td><td class="entry"><a class="el" href="structsigc_1_1slot__const__iterator.html">sigc::slot_const_iterator&lt; T_slot &gt;</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1slot__const__iterator.html#af84ef3ee54ae482534d88ac6a5b871ae">slot_const_iterator</a>(const iterator_type&amp; i)</td><td class="entry"><a class="el" href="structsigc_1_1slot__const__iterator.html">sigc::slot_const_iterator&lt; T_slot &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
   <tr><td class="entry"><a class="el" href="structsigc_1_1slot__const__iterator.html#a8b5351ee7a8f6e5540a31389da643cfe">slot_type</a> typedef</td><td class="entry"><a class="el" href="structsigc_1_1slot__const__iterator.html">sigc::slot_const_iterator&lt; T_slot &gt;</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1slot__const__iterator.html#a9f808226eaec9c7427c683104cea0141">value_type</a> typedef</td><td class="entry"><a class="el" href="structsigc_1_1slot__const__iterator.html">sigc::slot_const_iterator&lt; T_slot &gt;</a></td><td class="entry"></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 3f2633d..49fda09 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -87,8 +87,8 @@ Public Types</h2></td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:a2b9e80b87a3400bb6f794c07f90d2d47"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1slot__const__iterator.html#a2b9e80b87a3400bb6f794c07f90d2d47">slot_const_iterator</a> ()</td></tr>
-<tr class="separator:a2b9e80b87a3400bb6f794c07f90d2d47"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab6ef32d4816c355b290fdd19773a9c5a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1slot__const__iterator.html#ab6ef32d4816c355b290fdd19773a9c5a">slot_const_iterator</a> ()=default</td></tr>
+<tr class="separator:ab6ef32d4816c355b290fdd19773a9c5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:af84ef3ee54ae482534d88ac6a5b871ae"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1slot__const__iterator.html#af84ef3ee54ae482534d88ac6a5b871ae">slot_const_iterator</a> (const <a class="el" href="structsigc_1_1slot__const__iterator.html#a12eb7cd8ef0a662f7b9017efceb8dc26">iterator_type</a>&amp; i)</td></tr>
 <tr class="separator:af84ef3ee54ae482534d88ac6a5b871ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ac665f75d2a7cad5012a3ec0ab6be1230"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1slot__const__iterator.html#ac665f75d2a7cad5012a3ec0ab6be1230">operator!=</a> (const <a class="el" href="structsigc_1_1slot__const__iterator.html">slot_const_iterator</a>&amp; other) const </td></tr>
@@ -232,7 +232,7 @@ template &lt;typename T_slot &gt; </div>
 </div>
 </div>
 <h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a class="anchor" id="a2b9e80b87a3400bb6f794c07f90d2d47"></a>
+<a class="anchor" id="ab6ef32d4816c355b290fdd19773a9c5a"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -250,7 +250,7 @@ template &lt;typename T_slot &gt; </div>
       </table>
   </td>
   <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+<span class="mlabels"><span class="mlabel">default</span></span>  </td>
   </tr>
 </table>
 </div><div class="memdoc">
@@ -506,7 +506,7 @@ template &lt;typename T_slot &gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index e168f74..50d8633 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
   <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1slot__iterator.html#a0294816421156332c4ae91420ff7ac1e">pointer</a> typedef</td><td class="entry"><a class="el" href="structsigc_1_1slot__iterator.html">sigc::slot_iterator&lt; T_slot &gt;</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="structsigc_1_1slot__iterator.html#af83b25d9ad6873ddb75d2df533fbd303">reference</a> typedef</td><td class="entry"><a class="el" href="structsigc_1_1slot__iterator.html">sigc::slot_iterator&lt; T_slot &gt;</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1slot__iterator.html#a7f3744cd484e734201f4fb20adaa24d9">size_type</a> typedef</td><td class="entry"><a class="el" href="structsigc_1_1slot__iterator.html">sigc::slot_iterator&lt; T_slot &gt;</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structsigc_1_1slot__iterator.html#a82d4023ad9dc38dcde4cae6bf65cd8c8">slot_iterator</a>()</td><td class="entry"><a class="el" href="structsigc_1_1slot__iterator.html">sigc::slot_iterator&lt; T_slot &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="structsigc_1_1slot__iterator.html#a4cbc74cd51c2a45a28eac9d2284c122b">slot_iterator</a>()=default</td><td class="entry"><a class="el" href="structsigc_1_1slot__iterator.html">sigc::slot_iterator&lt; T_slot &gt;</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1slot__iterator.html#a07933d72e788285673121e5ce019a260">slot_iterator</a>(const iterator_type&amp; i)</td><td class="entry"><a class="el" href="structsigc_1_1slot__iterator.html">sigc::slot_iterator&lt; T_slot &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
   <tr><td class="entry"><a class="el" href="structsigc_1_1slot__iterator.html#abfdb9324a0dc076113d3e07f146699ec">slot_type</a> typedef</td><td class="entry"><a class="el" href="structsigc_1_1slot__iterator.html">sigc::slot_iterator&lt; T_slot &gt;</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1slot__iterator.html#a791bd89fd1f04693a1bd506acd6fcc2b">value_type</a> typedef</td><td class="entry"><a class="el" href="structsigc_1_1slot__iterator.html">sigc::slot_iterator&lt; T_slot &gt;</a></td><td class="entry"></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 0b9adad..bd42edb 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -87,8 +87,8 @@ Public Types</h2></td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:a82d4023ad9dc38dcde4cae6bf65cd8c8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1slot__iterator.html#a82d4023ad9dc38dcde4cae6bf65cd8c8">slot_iterator</a> ()</td></tr>
-<tr class="separator:a82d4023ad9dc38dcde4cae6bf65cd8c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4cbc74cd51c2a45a28eac9d2284c122b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1slot__iterator.html#a4cbc74cd51c2a45a28eac9d2284c122b">slot_iterator</a> ()=default</td></tr>
+<tr class="separator:a4cbc74cd51c2a45a28eac9d2284c122b"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a07933d72e788285673121e5ce019a260"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1slot__iterator.html#a07933d72e788285673121e5ce019a260">slot_iterator</a> (const <a class="el" href="structsigc_1_1slot__iterator.html#aa3d285992b18fbfe7dbffd9bfe43a19f">iterator_type</a>&amp; i)</td></tr>
 <tr class="separator:a07933d72e788285673121e5ce019a260"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ae69f637123137f19f7fcb219a2e2cac8"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1slot__iterator.html#ae69f637123137f19f7fcb219a2e2cac8">operator!=</a> (const <a class="el" href="structsigc_1_1slot__iterator.html">slot_iterator</a>&amp; other) const </td></tr>
@@ -232,7 +232,7 @@ template &lt;typename T_slot &gt; </div>
 </div>
 </div>
 <h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a class="anchor" id="a82d4023ad9dc38dcde4cae6bf65cd8c8"></a>
+<a class="anchor" id="a4cbc74cd51c2a45a28eac9d2284c122b"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -250,7 +250,7 @@ template &lt;typename T_slot &gt; </div>
       </table>
   </td>
   <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+<span class="mlabels"><span class="mlabel">default</span></span>  </td>
   </tr>
 </table>
 </div><div class="memdoc">
@@ -506,7 +506,7 @@ template &lt;typename T_slot &gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 483e84a..ac535e8 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
   <tr><td class="entry"><a class="el" href="structsigc_1_1slot__list.html#a34c421956609463692527793e49b87ae">insert</a>(iterator i, const slot_type&amp; slot_)</td><td class="entry"><a class="el" href="structsigc_1_1slot__list.html">sigc::slot_list&lt; T_slot &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1slot__list.html#ac4e8d8b623aed063b7873b5d2e1ce5f5">insert</a>(iterator i, slot_type&amp;&amp; slot_)</td><td class="entry"><a class="el" href="structsigc_1_1slot__list.html">sigc::slot_list&lt; T_slot &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr><td class="entry"><a class="el" href="structsigc_1_1slot__list.html#a411910e387a013875978b82a3f67f7f5">iterator</a> typedef</td><td class="entry"><a class="el" href="structsigc_1_1slot__list.html">sigc::slot_list&lt; T_slot &gt;</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1slot__list.html#a2c5b3ecf068ec93cdc34a4ae8d48313c">list_</a></td><td class="entry"><a class="el" href="structsigc_1_1slot__list.html">sigc::slot_list&lt; T_slot &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="structsigc_1_1slot__list.html#abb28f82ef0cbc78a86a4becd61b0c9ff">pop_back</a>()</td><td class="entry"><a class="el" href="structsigc_1_1slot__list.html">sigc::slot_list&lt; T_slot &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1slot__list.html#a9244005ecc265b07b7f451e63662686e">pop_front</a>()</td><td class="entry"><a class="el" href="structsigc_1_1slot__list.html">sigc::slot_list&lt; T_slot &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="structsigc_1_1slot__list.html#a5c7401657a6020c14616e62b20949de8">push_back</a>(const slot_type&amp; c)</td><td class="entry"><a class="el" href="structsigc_1_1slot__list.html">sigc::slot_list&lt; T_slot &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1slot__list.html#a48bf437419930c92756ee3b2162d08ad">push_back</a>(slot_type&amp;&amp; c)</td><td class="entry"><a class="el" href="structsigc_1_1slot__list.html">sigc::slot_list&lt; T_slot &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="structsigc_1_1slot__list.html#a5bb241c13cb363825f787ecd244ebf7d">push_front</a>(const slot_type&amp; c)</td><td class="entry"><a class="el" href="structsigc_1_1slot__list.html">sigc::slot_list&lt; T_slot &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1slot__list.html#a4179f2c80be5fb65544b19b3b1d4807e">push_front</a>(slot_type&amp;&amp; c)</td><td class="entry"><a class="el" href="structsigc_1_1slot__list.html">sigc::slot_list&lt; T_slot &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="structsigc_1_1slot__list.html#a898411734692d01a320b20a20d9e6978">rbegin</a>()</td><td class="entry"><a class="el" href="structsigc_1_1slot__list.html">sigc::slot_list&lt; T_slot &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1slot__list.html#a96274762b287c25fd3c4d44bd56ac50a">rbegin</a>() const </td><td class="entry"><a class="el" href="structsigc_1_1slot__list.html">sigc::slot_list&lt; T_slot &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="structsigc_1_1slot__list.html#ad622ce85b35c621918f3c090aa72ed3d">reference</a> typedef</td><td class="entry"><a class="el" href="structsigc_1_1slot__list.html">sigc::slot_list&lt; T_slot &gt;</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1slot__list.html#ae4759ca19577b31dca5116292e7de19c">rend</a>()</td><td class="entry"><a class="el" href="structsigc_1_1slot__list.html">sigc::slot_list&lt; T_slot &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="structsigc_1_1slot__list.html#a60a463998de82604f1e42e562dd3bab2">rend</a>() const </td><td class="entry"><a class="el" href="structsigc_1_1slot__list.html">sigc::slot_list&lt; T_slot &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1slot__list.html#abf106e3cd1712644765eb4282e3e28af">reverse_iterator</a> typedef</td><td class="entry"><a class="el" href="structsigc_1_1slot__list.html">sigc::slot_list&lt; T_slot &gt;</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structsigc_1_1slot__list.html#aa83ff2d263581f80f9d15d14fa31bc7a">slot_list</a>()</td><td class="entry"><a class="el" href="structsigc_1_1slot__list.html">sigc::slot_list&lt; T_slot &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1slot__list.html#a5baac8e52fda5f6fc4fa31bed67077e3">slot_list</a>(internal::signal_impl* __list)</td><td class="entry"><a class="el" href="structsigc_1_1slot__list.html">sigc::slot_list&lt; T_slot &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
-  <tr><td class="entry"><a class="el" href="structsigc_1_1slot__list.html#a6056bec4244664215994472a129ee80c">slot_type</a> typedef</td><td class="entry"><a class="el" href="structsigc_1_1slot__list.html">sigc::slot_list&lt; T_slot &gt;</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1slot__list.html#abb28f82ef0cbc78a86a4becd61b0c9ff">pop_back</a>()</td><td class="entry"><a class="el" href="structsigc_1_1slot__list.html">sigc::slot_list&lt; T_slot &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="structsigc_1_1slot__list.html#a9244005ecc265b07b7f451e63662686e">pop_front</a>()</td><td class="entry"><a class="el" href="structsigc_1_1slot__list.html">sigc::slot_list&lt; T_slot &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1slot__list.html#a5c7401657a6020c14616e62b20949de8">push_back</a>(const slot_type&amp; c)</td><td class="entry"><a class="el" href="structsigc_1_1slot__list.html">sigc::slot_list&lt; T_slot &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="structsigc_1_1slot__list.html#a48bf437419930c92756ee3b2162d08ad">push_back</a>(slot_type&amp;&amp; c)</td><td class="entry"><a class="el" href="structsigc_1_1slot__list.html">sigc::slot_list&lt; T_slot &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1slot__list.html#a5bb241c13cb363825f787ecd244ebf7d">push_front</a>(const slot_type&amp; c)</td><td class="entry"><a class="el" href="structsigc_1_1slot__list.html">sigc::slot_list&lt; T_slot &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="structsigc_1_1slot__list.html#a4179f2c80be5fb65544b19b3b1d4807e">push_front</a>(slot_type&amp;&amp; c)</td><td class="entry"><a class="el" href="structsigc_1_1slot__list.html">sigc::slot_list&lt; T_slot &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1slot__list.html#a898411734692d01a320b20a20d9e6978">rbegin</a>()</td><td class="entry"><a class="el" href="structsigc_1_1slot__list.html">sigc::slot_list&lt; T_slot &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="structsigc_1_1slot__list.html#a96274762b287c25fd3c4d44bd56ac50a">rbegin</a>() const </td><td class="entry"><a class="el" href="structsigc_1_1slot__list.html">sigc::slot_list&lt; T_slot &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1slot__list.html#ad622ce85b35c621918f3c090aa72ed3d">reference</a> typedef</td><td class="entry"><a class="el" href="structsigc_1_1slot__list.html">sigc::slot_list&lt; T_slot &gt;</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="structsigc_1_1slot__list.html#ae4759ca19577b31dca5116292e7de19c">rend</a>()</td><td class="entry"><a class="el" href="structsigc_1_1slot__list.html">sigc::slot_list&lt; T_slot &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1slot__list.html#a60a463998de82604f1e42e562dd3bab2">rend</a>() const </td><td class="entry"><a class="el" href="structsigc_1_1slot__list.html">sigc::slot_list&lt; T_slot &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="structsigc_1_1slot__list.html#abf106e3cd1712644765eb4282e3e28af">reverse_iterator</a> typedef</td><td class="entry"><a class="el" href="structsigc_1_1slot__list.html">sigc::slot_list&lt; T_slot &gt;</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1slot__list.html#aa83ff2d263581f80f9d15d14fa31bc7a">slot_list</a>()</td><td class="entry"><a class="el" href="structsigc_1_1slot__list.html">sigc::slot_list&lt; T_slot &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="structsigc_1_1slot__list.html#a5baac8e52fda5f6fc4fa31bed67077e3">slot_list</a>(internal::signal_impl* __list)</td><td class="entry"><a class="el" href="structsigc_1_1slot__list.html">sigc::slot_list&lt; T_slot &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structsigc_1_1slot__list.html#a6056bec4244664215994472a129ee80c">slot_type</a> typedef</td><td class="entry"><a class="el" href="structsigc_1_1slot__list.html">sigc::slot_list&lt; T_slot &gt;</a></td><td class="entry"></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 70d4230..baf2e69 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -54,7 +54,6 @@
   <div class="summary">
 <a href="#pub-types">Public Types</a> &#124;
 <a href="#pub-methods">Public Member Functions</a> &#124;
-<a href="#pro-attribs">Protected Attributes</a> &#124;
 <a href="structsigc_1_1slot__list-members.html">List of all members</a>  </div>
   <div class="headertitle">
 <div class="title">sigc::slot_list&lt; T_slot &gt; Struct Template Reference<div class="ingroups"><a class="el" href="group__signal.html">Signals</a></div></div>  </div>
@@ -133,11 +132,6 @@ Public Member Functions</h2></td></tr>
 <tr class="separator:ae4759ca19577b31dca5116292e7de19c"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a60a463998de82604f1e42e562dd3bab2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsigc_1_1slot__list.html#aaf87b9b9a2371f9701b8410c3cd333c7">const_reverse_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1slot__list.html#a60a463998de82604f1e42e562dd3bab2">rend</a> () const </td></tr>
 <tr class="separator:a60a463998de82604f1e42e562dd3bab2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
-Protected Attributes</h2></td></tr>
-<tr class="memitem:a2c5b3ecf068ec93cdc34a4ae8d48313c"><td class="memItemLeft" align="right" valign="top">internal::signal_impl*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1slot__list.html#a2c5b3ecf068ec93cdc34a4ae8d48313c">list_</a></td></tr>
-<tr class="separator:a2c5b3ecf068ec93cdc34a4ae8d48313c"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><h3>template&lt;class T_slot&gt;<br />
@@ -885,33 +879,10 @@ template &lt;class T_slot &gt; </div>
 
 </div>
 </div>
-<h2 class="groupheader">Member Data Documentation</h2>
-<a class="anchor" id="a2c5b3ecf068ec93cdc34a4ae8d48313c"></a>
-<div class="memitem">
-<div class="memproto">
-<div class="memtemplate">
-template &lt;class T_slot &gt; </div>
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">internal::signal_impl* <a class="el" href="structsigc_1_1slot__list.html">sigc::slot_list</a>&lt; T_slot &gt;::list_</td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-
-</div>
-</div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index fd97892..82586c5 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -71,7 +71,7 @@
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index da81916..206f19d 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -314,7 +314,7 @@ Public Member Functions</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index cfb678c..ec84fe9 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -63,7 +63,7 @@
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 065ceba..e83e269 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -100,7 +100,7 @@ template &lt;class T_type &gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index d2cbbb5..9a5a0dc 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -63,7 +63,7 @@
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 7f8da22..018c2ac 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -100,7 +100,7 @@ template &lt;class T_type , int N&gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 66d4362..37226ba 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -63,7 +63,7 @@
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 02d1b79..1ae17b7 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -100,7 +100,7 @@ template &lt;class T_type &gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index b0871e6..29083bb 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -63,7 +63,7 @@
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index d5f958f..0a02109 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -100,7 +100,7 @@ template &lt;class T_type &gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 58a08aa..2b65f49 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -63,7 +63,7 @@
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 7de339b..a697d5b 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -96,7 +96,7 @@ Public Types</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index f593626..d72af2d 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -62,7 +62,7 @@
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index b1f23b1..28963a9 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -84,7 +84,7 @@ template &lt;class T_type &gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 039f4b5..7cec0fb 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -62,7 +62,7 @@
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index fbeb6a6..d3ad300 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -84,7 +84,7 @@ template &lt;class T_type &gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 5db0051..b245a7a 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -84,7 +84,7 @@ template &lt;class T_type &gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 3c2b6af..c841293 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -62,7 +62,7 @@
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index e9556e5..b8a2708 100644 (file)
@@ -19,7 +19,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">libsigc++
-   &#160;<span id="projectnumber">2.99.3</span>
+   &#160;<span id="projectnumber">2.99.4</span>
    </div>
   </td>
  </tr>
@@ -143,7 +143,7 @@ template &lt;class T_action &gt; </div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Fri Mar 18 2016 11:58:46 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Fri Apr 8 2016 11:02:07 for libsigc++ by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
index 462d447..ac6dcbf 100644 (file)
     <keyword type="function" name="limit_reference&lt; T_wrapped &gt;::visit" link="classsigc_1_1limit__reference.html#a35d9d66be606486266e53ff416ec0847"/>
     <keyword type="struct" name="mem_functor&lt; T_func, T_arg...&gt;" link="classsigc_1_1mem__functor.html"/>
     <keyword type="typedef" name="mem_functor&lt; T_func, T_arg...&gt;::function_type" link="classsigc_1_1mem__functor.html#a15a8ea02f1ffc3875b06fe24afe0c716"/>
-    <keyword type="typedef" name="mem_functor&lt; T_func, T_arg...&gt;::obj_type_with_modifier" link="classsigc_1_1mem__functor.html#a24ef71042d8feaed869706c6d3236256"/>
+    <keyword type="typedef" name="mem_functor&lt; T_func, T_arg...&gt;::obj_type_with_modifier" link="classsigc_1_1mem__functor.html#af1e0eb58e6f96e48e8660dcb96e7a1fd"/>
     <keyword type="typedef" name="mem_functor&lt; T_func, T_arg...&gt;::object_type" link="classsigc_1_1mem__functor.html#a66ce968499f60275c30feea623a5fa5b"/>
     <keyword type="typedef" name="mem_functor&lt; T_func, T_arg...&gt;::result_type" link="classsigc_1_1mem__functor.html#ab35ca512321bab23d281672bae70f2e4"/>
     <keyword type="function" name="mem_functor&lt; T_func, T_arg...&gt;::mem_functor" link="classsigc_1_1mem__functor.html#a47fa96e26ce1f3f4fd056342b76f90f6"/>
     <keyword type="struct" name="sigc::adaptor_base" link="structsigc_1_1adaptor__base.html"/>
     <keyword type="struct" name="sigc::adaptor_functor" link="structsigc_1_1adaptor__functor.html"/>
     <keyword type="typedef" name="sigc::adaptor_functor::result_type" link="structsigc_1_1adaptor__functor.html#a724506f950434eb50de9407b7bcbebeb"/>
-    <keyword type="function" name="sigc::adaptor_functor::adaptor_functor" link="structsigc_1_1adaptor__functor.html#a39ef4610f8e0f03425b6f4a44b59e5fb"/>
+    <keyword type="function" name="sigc::adaptor_functor::adaptor_functor" link="structsigc_1_1adaptor__functor.html#a35ecf04af30830154f9ced6ddb9401a7"/>
     <keyword type="function" name="sigc::adaptor_functor::adaptor_functor" link="structsigc_1_1adaptor__functor.html#ac5907212f7ee2eadf10b31757a0c5930"/>
     <keyword type="function" name="sigc::adaptor_functor::adaptor_functor" link="structsigc_1_1adaptor__functor.html#af765e401002eb15f18aca5cfaa678b01"/>
     <keyword type="function" name="sigc::adaptor_functor::operator()" link="structsigc_1_1adaptor__functor.html#a5aef2dd64d7c7a2762ea578ae19b438f"/>
     <keyword type="function" name="sigc::bound_argument&lt; std::reference_wrapper&lt; T_wrapped &gt; &gt;::visit" link="classsigc_1_1bound__argument_3_01std_1_1reference__wrapper_3_01T__wrapped_01_4_01_4.html#ae6a4426ca39736a475bbcc81d7fcd9b2"/>
     <keyword type="struct" name="sigc::bound_mem_functor" link="classsigc_1_1bound__mem__functor.html"/>
     <keyword type="typedef" name="sigc::bound_mem_functor::function_type" link="classsigc_1_1bound__mem__functor.html#a872b1c05e93574f6b4fea719dd84562b"/>
-    <keyword type="typedef" name="sigc::bound_mem_functor::obj_type_with_modifier" link="classsigc_1_1bound__mem__functor.html#abb9c367edb9d7e8d475ebf1690d079d6"/>
+    <keyword type="typedef" name="sigc::bound_mem_functor::obj_type_with_modifier" link="classsigc_1_1bound__mem__functor.html#a66a253cef347ec5ee52a28443b73768a"/>
     <keyword type="typedef" name="sigc::bound_mem_functor::object_type" link="classsigc_1_1bound__mem__functor.html#a6cff1d1d709688fed710b40ce96c6eca"/>
     <keyword type="typedef" name="sigc::bound_mem_functor::result_type" link="classsigc_1_1bound__mem__functor.html#a6e3829edf337389a0427ffff403838a8"/>
-    <keyword type="typedef" name="sigc::bound_mem_functor::T_limit_reference" link="classsigc_1_1bound__mem__functor.html#a5f9c4408bf79f18f6531df98c2dbfac1"/>
+    <keyword type="typedef" name="sigc::bound_mem_functor::T_limit_reference" link="classsigc_1_1bound__mem__functor.html#ab878d0a58673014fb989e75777a1f11d"/>
     <keyword type="function" name="sigc::bound_mem_functor::bound_mem_functor" link="classsigc_1_1bound__mem__functor.html#abf0f84db2b1fd9268432e853667937d9"/>
     <keyword type="function" name="sigc::bound_mem_functor::operator()" link="classsigc_1_1bound__mem__functor.html#aa4a72f4d8769468ae4684ff78b80c8a3"/>
     <keyword type="struct" name="sigc::can_deduce_result_type_with_decltype" link="classsigc_1_1can__deduce__result__type__with__decltype.html"/>
     <keyword type="struct" name="sigc::exception_catch_functor&lt; T_functor, T_catcher, void &gt;" link="structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html"/>
     <keyword type="typedef" name="sigc::exception_catch_functor&lt; T_functor, T_catcher, void &gt;::adaptor_type" link="structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html#abcc5844536e9fe6e2260c3b55a4da668"/>
     <keyword type="typedef" name="sigc::exception_catch_functor&lt; T_functor, T_catcher, void &gt;::result_type" link="structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html#a9b4a1e5696d501ec3e8a46c79a3eea35"/>
-    <keyword type="function" name="sigc::exception_catch_functor&lt; T_functor, T_catcher, void &gt;::exception_catch_functor" link="structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html#a84b167dc0dd520253776c55eb711c461"/>
+    <keyword type="function" name="sigc::exception_catch_functor&lt; T_functor, T_catcher, void &gt;::exception_catch_functor" link="structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html#af98f46c6e103e71aed307487a8bc01db"/>
     <keyword type="function" name="sigc::exception_catch_functor&lt; T_functor, T_catcher, void &gt;::exception_catch_functor" link="structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html#a08a5ce7a94a0646e92c5eb8fb6b7d5f3"/>
-    <keyword type="function" name="sigc::exception_catch_functor&lt; T_functor, T_catcher, void &gt;::~exception_catch_functor" link="structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html#a1537e7d0175046d65522bd960149bb62"/>
+    <keyword type="function" name="sigc::exception_catch_functor&lt; T_functor, T_catcher, void &gt;::~exception_catch_functor" link="structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html#ae50571594945757cc4af73b52f9ac656"/>
     <keyword type="function" name="sigc::exception_catch_functor&lt; T_functor, T_catcher, void &gt;::operator()" link="structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html#a556b5cd6fb6f0675d85ea2f7e45158f1"/>
     <keyword type="struct" name="sigc::functor_base" link="structsigc_1_1functor__base.html"/>
     <keyword type="struct" name="sigc::functor_trait" link="structsigc_1_1functor__trait.html"/>
     <keyword type="function" name="sigc::limit_reference&lt; T_type, true &gt;::visit" link="classsigc_1_1limit__reference_3_01T__type_00_01true_01_4.html#acda4db64eb1cf4156d6b35acbe75cef5"/>
     <keyword type="struct" name="sigc::mem_functor" link="classsigc_1_1mem__functor.html"/>
     <keyword type="typedef" name="sigc::mem_functor::function_type" link="classsigc_1_1mem__functor.html#a15a8ea02f1ffc3875b06fe24afe0c716"/>
-    <keyword type="typedef" name="sigc::mem_functor::obj_type_with_modifier" link="classsigc_1_1mem__functor.html#a24ef71042d8feaed869706c6d3236256"/>
+    <keyword type="typedef" name="sigc::mem_functor::obj_type_with_modifier" link="classsigc_1_1mem__functor.html#af1e0eb58e6f96e48e8660dcb96e7a1fd"/>
     <keyword type="typedef" name="sigc::mem_functor::object_type" link="classsigc_1_1mem__functor.html#a66ce968499f60275c30feea623a5fa5b"/>
     <keyword type="typedef" name="sigc::mem_functor::result_type" link="classsigc_1_1mem__functor.html#ab35ca512321bab23d281672bae70f2e4"/>
     <keyword type="function" name="sigc::mem_functor::mem_functor" link="classsigc_1_1mem__functor.html#a47fa96e26ce1f3f4fd056342b76f90f6"/>
     <keyword type="struct" name="sigc::pointer_functor" link="classsigc_1_1pointer__functor.html"/>
     <keyword type="struct" name="sigc::pointer_functor&lt; T_return(T_args...)&gt;" link="classsigc_1_1pointer__functor_3_01T__return_07T__args_8_8_8_08_4.html"/>
     <keyword type="typedef" name="sigc::pointer_functor&lt; T_return(T_args...)&gt;::result_type" link="classsigc_1_1pointer__functor_3_01T__return_07T__args_8_8_8_08_4.html#a0a6c15f66e36a7d656d8b13949632ff5"/>
-    <keyword type="function" name="sigc::pointer_functor&lt; T_return(T_args...)&gt;::pointer_functor" link="classsigc_1_1pointer__functor_3_01T__return_07T__args_8_8_8_08_4.html#a9a9e668280c525690934039360708f88"/>
+    <keyword type="function" name="sigc::pointer_functor&lt; T_return(T_args...)&gt;::pointer_functor" link="classsigc_1_1pointer__functor_3_01T__return_07T__args_8_8_8_08_4.html#a8c24759c975f2c4e7c18913f1adad397"/>
     <keyword type="function" name="sigc::pointer_functor&lt; T_return(T_args...)&gt;::pointer_functor" link="classsigc_1_1pointer__functor_3_01T__return_07T__args_8_8_8_08_4.html#acf5187ed4b100979bda904663398b478"/>
     <keyword type="function" name="sigc::pointer_functor&lt; T_return(T_args...)&gt;::operator()" link="classsigc_1_1pointer__functor_3_01T__return_07T__args_8_8_8_08_4.html#ad84eb8b252001dd854485486b1b953c1"/>
     <keyword type="struct" name="sigc::retype_functor" link="structsigc_1_1retype__functor.html"/>
     <keyword type="function" name="sigc::retype_functor::operator()" link="structsigc_1_1retype__functor.html#a0566579cfc3020aaa6d9ec2bd312454b"/>
     <keyword type="struct" name="sigc::retype_return_functor" link="structsigc_1_1retype__return__functor.html"/>
     <keyword type="typedef" name="sigc::retype_return_functor::result_type" link="structsigc_1_1retype__return__functor.html#a0323ae19dd5c77474549a1b68a996be2"/>
-    <keyword type="function" name="sigc::retype_return_functor::retype_return_functor" link="structsigc_1_1retype__return__functor.html#aa9546db86a6d1cfa7224a3a0cbad4827"/>
+    <keyword type="function" name="sigc::retype_return_functor::retype_return_functor" link="structsigc_1_1retype__return__functor.html#a59293dcbd669f21528d027d89b205a9b"/>
     <keyword type="function" name="sigc::retype_return_functor::retype_return_functor" link="structsigc_1_1retype__return__functor.html#a9ebfb2a6cfb5125b0705c0adef2cbfb8"/>
     <keyword type="function" name="sigc::retype_return_functor::operator()" link="structsigc_1_1retype__return__functor.html#a4cf9725b7ac4fdfeded4ab3f56d61a88"/>
     <keyword type="function" name="sigc::retype_return_functor::operator()" link="structsigc_1_1retype__return__functor.html#aab4cb6f79ea0bd98e21ad787b4cf26c8"/>
     <keyword type="struct" name="sigc::retype_return_functor&lt; void, T_functor &gt;" link="structsigc_1_1retype__return__functor_3_01void_00_01T__functor_01_4.html"/>
     <keyword type="typedef" name="sigc::retype_return_functor&lt; void, T_functor &gt;::result_type" link="structsigc_1_1retype__return__functor_3_01void_00_01T__functor_01_4.html#a82f2e5d601a949a329e47b16ccfae220"/>
-    <keyword type="function" name="sigc::retype_return_functor&lt; void, T_functor &gt;::retype_return_functor" link="structsigc_1_1retype__return__functor_3_01void_00_01T__functor_01_4.html#a720e802de29a72d1e15626b1719844bc"/>
+    <keyword type="function" name="sigc::retype_return_functor&lt; void, T_functor &gt;::retype_return_functor" link="structsigc_1_1retype__return__functor_3_01void_00_01T__functor_01_4.html#a541afde21dab200b4461e6d5f2955665"/>
     <keyword type="function" name="sigc::retype_return_functor&lt; void, T_functor &gt;::retype_return_functor" link="structsigc_1_1retype__return__functor_3_01void_00_01T__functor_01_4.html#acd4789babb601ac5bee163651d89f3c8"/>
     <keyword type="function" name="sigc::retype_return_functor&lt; void, T_functor &gt;::operator()" link="structsigc_1_1retype__return__functor_3_01void_00_01T__functor_01_4.html#af181f5a8134c5a834e2ad0ed7590fbfe"/>
     <keyword type="function" name="sigc::retype_return_functor&lt; void, T_functor &gt;::operator()" link="structsigc_1_1retype__return__functor_3_01void_00_01T__functor_01_4.html#aa2ed17928b003633490cc4d889d9d790"/>
     <keyword type="struct" name="sigc::signal" link="classsigc_1_1signal.html"/>
     <keyword type="struct" name="sigc::signal&lt; T_return(T_arg...)&gt;" link="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4.html"/>
     <keyword type="typedef" name="sigc::signal&lt; T_return(T_arg...)&gt;::accumulator_type" link="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4.html#a80332f4caf87e55c1038365318dacb60"/>
-    <keyword type="function" name="sigc::signal&lt; T_return(T_arg...)&gt;::signal" link="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4.html#a28a1b631364fe189c672bf036eeb79d1"/>
+    <keyword type="function" name="sigc::signal&lt; T_return(T_arg...)&gt;::signal" link="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4.html#a64007f14e856dfc6fd775b0d7590b830"/>
     <keyword type="function" name="sigc::signal&lt; T_return(T_arg...)&gt;::signal" link="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4.html#aeb519c37f7e815bd98bab97fff31eb3a"/>
     <keyword type="function" name="sigc::signal&lt; T_return(T_arg...)&gt;::signal" link="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4.html#ab5cc052ce9315f1ebb8f11a4ebd20c14"/>
     <keyword type="function" name="sigc::signal&lt; T_return(T_arg...)&gt;::operator=" link="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4.html#a826d3477588200bb8e1be7a2369892a2"/>
     <keyword type="function" name="sigc::signal&lt; T_return(T_arg...)&gt;::operator=" link="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4.html#ab765e34c9b99fe2d6e2c888fa9d139e8"/>
     <keyword type="struct" name="sigc::signal&lt; T_return(T_arg...)&gt;::accumulated" link="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4_1_1accumulated.html"/>
-    <keyword type="function" name="sigc::signal&lt; T_return(T_arg...)&gt;::accumulated::accumulated" link="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4_1_1accumulated.html#a4f9156ded62f393d5db95576d7ec1e74"/>
+    <keyword type="function" name="sigc::signal&lt; T_return(T_arg...)&gt;::accumulated::accumulated" link="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4_1_1accumulated.html#a082c6d8d61fb29a411b6ee457c4cfb26"/>
     <keyword type="function" name="sigc::signal&lt; T_return(T_arg...)&gt;::accumulated::accumulated" link="classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4_1_1accumulated.html#ae2a536f43414691cf7a11ca8eb8b8ca4"/>
     <keyword type="struct" name="sigc::signal_base" link="structsigc_1_1signal__base.html"/>
     <keyword type="typedef" name="sigc::signal_base::size_type" link="structsigc_1_1signal__base.html#a703c48e69c62ef57801e4d29f84f6e94"/>
     <keyword type="typedef" name="sigc::signal_with_accumulator::reverse_iterator" link="classsigc_1_1signal__with__accumulator.html#abf8c49a1077f722d482f1399b8a75f3c"/>
     <keyword type="typedef" name="sigc::signal_with_accumulator::slot_list_type" link="classsigc_1_1signal__with__accumulator.html#a62afb00ff6131823ba12b3e350418195"/>
     <keyword type="typedef" name="sigc::signal_with_accumulator::slot_type" link="classsigc_1_1signal__with__accumulator.html#a2eee90cba16be957a3212d1b541ddc04"/>
-    <keyword type="function" name="sigc::signal_with_accumulator::signal_with_accumulator" link="classsigc_1_1signal__with__accumulator.html#aa89a63854dab616588d61e04f5798687"/>
+    <keyword type="function" name="sigc::signal_with_accumulator::signal_with_accumulator" link="classsigc_1_1signal__with__accumulator.html#a3a3897c85039df0bdfb3badcf0123674"/>
     <keyword type="function" name="sigc::signal_with_accumulator::signal_with_accumulator" link="classsigc_1_1signal__with__accumulator.html#a33d243a0841a085e3d2fddc7723de5ce"/>
     <keyword type="function" name="sigc::signal_with_accumulator::signal_with_accumulator" link="classsigc_1_1signal__with__accumulator.html#a3a86b1a92c39a2f82f0c568243894462"/>
     <keyword type="function" name="sigc::signal_with_accumulator::connect" link="classsigc_1_1signal__with__accumulator.html#a5db7407d1b5c605c1197fcf6f78fda4a"/>
     <keyword type="struct" name="sigc::slot" link="classsigc_1_1slot.html"/>
     <keyword type="struct" name="sigc::slot&lt; T_return(T_arg...)&gt;" link="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html"/>
     <keyword type="typedef" name="sigc::slot&lt; T_return(T_arg...)&gt;::result_type" link="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html#af593e79280c004b6ef8f4722953df0c4"/>
-    <keyword type="function" name="sigc::slot&lt; T_return(T_arg...)&gt;::slot" link="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html#add0d65ea6dc554733e766b3510c89a3a"/>
+    <keyword type="function" name="sigc::slot&lt; T_return(T_arg...)&gt;::slot" link="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html#acc6f588781fd085c25f1971ef5011cce"/>
     <keyword type="function" name="sigc::slot&lt; T_return(T_arg...)&gt;::slot" link="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html#a8c7a2fb604a0a9495bfa2850bb3520f5"/>
-    <keyword type="function" name="sigc::slot&lt; T_return(T_arg...)&gt;::slot" link="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html#ad1e5bc73a259ee666eb8d11d9e48d1d7"/>
+    <keyword type="function" name="sigc::slot&lt; T_return(T_arg...)&gt;::slot" link="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html#a414a664fc0112a68963e6e5187287237"/>
     <keyword type="function" name="sigc::slot&lt; T_return(T_arg...)&gt;::slot" link="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html#ae7d852d9ac2c9a6a37564a0f4aed3872"/>
     <keyword type="function" name="sigc::slot&lt; T_return(T_arg...)&gt;::operator()" link="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html#af0784c46ac4d3ec500b2d2c738e39ca4"/>
-    <keyword type="function" name="sigc::slot&lt; T_return(T_arg...)&gt;::operator=" link="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html#a34e1ec92ebbc3ee4dbc8acdeb525c12c"/>
+    <keyword type="function" name="sigc::slot&lt; T_return(T_arg...)&gt;::operator=" link="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html#af729fbf89950d5d6bfb816b8d0899ec2"/>
     <keyword type="function" name="sigc::slot&lt; T_return(T_arg...)&gt;::operator=" link="classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html#a22759a1af0d37b9e7432bbb046ceff8a"/>
     <keyword type="struct" name="sigc::slot_base" link="classsigc_1_1slot__base.html"/>
     <keyword type="typedef" name="sigc::slot_base::func_destroy_notify" link="classsigc_1_1slot__base.html#a719ea8d3cec443f2e63717bfbae41a30"/>
     <keyword type="typedef" name="sigc::slot_const_iterator::size_type" link="structsigc_1_1slot__const__iterator.html#abf8e9b1e26245b826edcc6eda1dfb0b2"/>
     <keyword type="typedef" name="sigc::slot_const_iterator::slot_type" link="structsigc_1_1slot__const__iterator.html#a8b5351ee7a8f6e5540a31389da643cfe"/>
     <keyword type="typedef" name="sigc::slot_const_iterator::value_type" link="structsigc_1_1slot__const__iterator.html#a9f808226eaec9c7427c683104cea0141"/>
-    <keyword type="function" name="sigc::slot_const_iterator::slot_const_iterator" link="structsigc_1_1slot__const__iterator.html#a2b9e80b87a3400bb6f794c07f90d2d47"/>
+    <keyword type="function" name="sigc::slot_const_iterator::slot_const_iterator" link="structsigc_1_1slot__const__iterator.html#ab6ef32d4816c355b290fdd19773a9c5a"/>
     <keyword type="function" name="sigc::slot_const_iterator::slot_const_iterator" link="structsigc_1_1slot__const__iterator.html#af84ef3ee54ae482534d88ac6a5b871ae"/>
     <keyword type="function" name="sigc::slot_const_iterator::operator!=" link="structsigc_1_1slot__const__iterator.html#ac665f75d2a7cad5012a3ec0ab6be1230"/>
     <keyword type="function" name="sigc::slot_const_iterator::operator*" link="structsigc_1_1slot__const__iterator.html#a753b4afd409883f47af264dfb8a3d28a"/>
     <keyword type="typedef" name="sigc::slot_iterator::size_type" link="structsigc_1_1slot__iterator.html#a7f3744cd484e734201f4fb20adaa24d9"/>
     <keyword type="typedef" name="sigc::slot_iterator::slot_type" link="structsigc_1_1slot__iterator.html#abfdb9324a0dc076113d3e07f146699ec"/>
     <keyword type="typedef" name="sigc::slot_iterator::value_type" link="structsigc_1_1slot__iterator.html#a791bd89fd1f04693a1bd506acd6fcc2b"/>
-    <keyword type="function" name="sigc::slot_iterator::slot_iterator" link="structsigc_1_1slot__iterator.html#a82d4023ad9dc38dcde4cae6bf65cd8c8"/>
+    <keyword type="function" name="sigc::slot_iterator::slot_iterator" link="structsigc_1_1slot__iterator.html#a4cbc74cd51c2a45a28eac9d2284c122b"/>
     <keyword type="function" name="sigc::slot_iterator::slot_iterator" link="structsigc_1_1slot__iterator.html#a07933d72e788285673121e5ce019a260"/>
     <keyword type="function" name="sigc::slot_iterator::operator!=" link="structsigc_1_1slot__iterator.html#ae69f637123137f19f7fcb219a2e2cac8"/>
     <keyword type="function" name="sigc::slot_iterator::operator*" link="structsigc_1_1slot__iterator.html#a6b60eccd1a74ea4d1e078a8be70dec8a"/>
     <keyword type="typedef" name="signal_with_accumulator&lt; T_return, T_accumulator, T_arg...&gt;::reverse_iterator" link="classsigc_1_1signal__with__accumulator.html#abf8c49a1077f722d482f1399b8a75f3c"/>
     <keyword type="typedef" name="signal_with_accumulator&lt; T_return, T_accumulator, T_arg...&gt;::slot_list_type" link="classsigc_1_1signal__with__accumulator.html#a62afb00ff6131823ba12b3e350418195"/>
     <keyword type="typedef" name="signal_with_accumulator&lt; T_return, T_accumulator, T_arg...&gt;::slot_type" link="classsigc_1_1signal__with__accumulator.html#a2eee90cba16be957a3212d1b541ddc04"/>
-    <keyword type="function" name="signal_with_accumulator&lt; T_return, T_accumulator, T_arg...&gt;::signal_with_accumulator" link="classsigc_1_1signal__with__accumulator.html#aa89a63854dab616588d61e04f5798687"/>
+    <keyword type="function" name="signal_with_accumulator&lt; T_return, T_accumulator, T_arg...&gt;::signal_with_accumulator" link="classsigc_1_1signal__with__accumulator.html#a3a3897c85039df0bdfb3badcf0123674"/>
     <keyword type="function" name="signal_with_accumulator&lt; T_return, T_accumulator, T_arg...&gt;::signal_with_accumulator" link="classsigc_1_1signal__with__accumulator.html#a33d243a0841a085e3d2fddc7723de5ce"/>
     <keyword type="function" name="signal_with_accumulator&lt; T_return, T_accumulator, T_arg...&gt;::signal_with_accumulator" link="classsigc_1_1signal__with__accumulator.html#a3a86b1a92c39a2f82f0c568243894462"/>
     <keyword type="function" name="signal_with_accumulator&lt; T_return, T_accumulator, T_arg...&gt;::connect" link="classsigc_1_1signal__with__accumulator.html#a5db7407d1b5c605c1197fcf6f78fda4a"/>
     <keyword type="typedef" name="signal_with_accumulator&lt; T_return, void, T_arg...&gt;::reverse_iterator" link="classsigc_1_1signal__with__accumulator.html#abf8c49a1077f722d482f1399b8a75f3c"/>
     <keyword type="typedef" name="signal_with_accumulator&lt; T_return, void, T_arg...&gt;::slot_list_type" link="classsigc_1_1signal__with__accumulator.html#a62afb00ff6131823ba12b3e350418195"/>
     <keyword type="typedef" name="signal_with_accumulator&lt; T_return, void, T_arg...&gt;::slot_type" link="classsigc_1_1signal__with__accumulator.html#a2eee90cba16be957a3212d1b541ddc04"/>
-    <keyword type="function" name="signal_with_accumulator&lt; T_return, void, T_arg...&gt;::signal_with_accumulator" link="classsigc_1_1signal__with__accumulator.html#aa89a63854dab616588d61e04f5798687"/>
+    <keyword type="function" name="signal_with_accumulator&lt; T_return, void, T_arg...&gt;::signal_with_accumulator" link="classsigc_1_1signal__with__accumulator.html#a3a3897c85039df0bdfb3badcf0123674"/>
     <keyword type="function" name="signal_with_accumulator&lt; T_return, void, T_arg...&gt;::signal_with_accumulator" link="classsigc_1_1signal__with__accumulator.html#a33d243a0841a085e3d2fddc7723de5ce"/>
     <keyword type="function" name="signal_with_accumulator&lt; T_return, void, T_arg...&gt;::signal_with_accumulator" link="classsigc_1_1signal__with__accumulator.html#a3a86b1a92c39a2f82f0c568243894462"/>
     <keyword type="function" name="signal_with_accumulator&lt; T_return, void, T_arg...&gt;::connect" link="classsigc_1_1signal__with__accumulator.html#a5db7407d1b5c605c1197fcf6f78fda4a"/>
index ad4ea1a..571a40e 100644 (file)
     </member>
     <member kind="define">
       <type>#define</type>
-      <name>SIGC_FUNCTORS_DEDUCE_RESULT_TYPE_WITH_DECLTYPE</name>
-      <anchorfile>group__sigcfunctors.html</anchorfile>
-      <anchor>gadf1ba3cacb09cc5c3c3e399836ec6e50</anchor>
-      <arglist></arglist>
-    </member>
-    <member kind="define">
-      <type>#define</type>
       <name>SIGC_FUNCTORS_HAVE_RESULT_TYPE</name>
       <anchorfile>group__sigcfunctors.html</anchorfile>
       <anchor>ga93b6ee8815d90adccfdceed72bcda577</anchor>
       <type>typename std::conditional_t&lt; internal::member_method_is_const&lt; T_func &gt;::value, const object_type, object_type &gt;</type>
       <name>obj_type_with_modifier</name>
       <anchorfile>classsigc_1_1mem__functor.html</anchorfile>
-      <anchor>a24ef71042d8feaed869706c6d3236256</anchor>
+      <anchor>af1e0eb58e6f96e48e8660dcb96e7a1fd</anchor>
       <arglist></arglist>
     </member>
     <member kind="typedef">
       <type></type>
       <name>adaptor_functor</name>
       <anchorfile>structsigc_1_1adaptor__functor.html</anchorfile>
-      <anchor>a39ef4610f8e0f03425b6f4a44b59e5fb</anchor>
-      <arglist>()</arglist>
+      <anchor>a35ecf04af30830154f9ced6ddb9401a7</anchor>
+      <arglist>()=default</arglist>
     </member>
     <member kind="function">
       <type></type>
       <type>typename std::conditional_t&lt; internal::member_method_is_const&lt; T_func &gt;::value, const object_type, object_type &gt;</type>
       <name>obj_type_with_modifier</name>
       <anchorfile>classsigc_1_1bound__mem__functor.html</anchorfile>
-      <anchor>abb9c367edb9d7e8d475ebf1690d079d6</anchor>
+      <anchor>a66a253cef347ec5ee52a28443b73768a</anchor>
       <arglist></arglist>
     </member>
     <member kind="typedef">
       <type>typename std::conditional_t&lt; internal::member_method_is_const&lt; T_func &gt;::value, limit_reference&lt; const object_type &gt;, limit_reference&lt; object_type &gt;&gt;</type>
       <name>T_limit_reference</name>
       <anchorfile>classsigc_1_1bound__mem__functor.html</anchorfile>
-      <anchor>a5f9c4408bf79f18f6531df98c2dbfac1</anchor>
+      <anchor>ab878d0a58673014fb989e75777a1f11d</anchor>
       <arglist></arglist>
     </member>
     <member kind="function">
       <type></type>
       <name>exception_catch_functor</name>
       <anchorfile>structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html</anchorfile>
-      <anchor>a84b167dc0dd520253776c55eb711c461</anchor>
-      <arglist>()</arglist>
+      <anchor>af98f46c6e103e71aed307487a8bc01db</anchor>
+      <arglist>()=default</arglist>
     </member>
     <member kind="function">
       <type></type>
       <type></type>
       <name>~exception_catch_functor</name>
       <anchorfile>structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html</anchorfile>
-      <anchor>a1537e7d0175046d65522bd960149bb62</anchor>
-      <arglist>()</arglist>
+      <anchor>ae50571594945757cc4af73b52f9ac656</anchor>
+      <arglist>()=default</arglist>
     </member>
     <member kind="function">
       <type>decltype(auto)</type>
       <type>typename std::conditional_t&lt; internal::member_method_is_const&lt; T_func &gt;::value, const object_type, object_type &gt;</type>
       <name>obj_type_with_modifier</name>
       <anchorfile>classsigc_1_1mem__functor.html</anchorfile>
-      <anchor>a24ef71042d8feaed869706c6d3236256</anchor>
+      <anchor>af1e0eb58e6f96e48e8660dcb96e7a1fd</anchor>
       <arglist></arglist>
     </member>
     <member kind="typedef">
       <type></type>
       <name>pointer_functor</name>
       <anchorfile>classsigc_1_1pointer__functor_3_01T__return_07T__args_8_8_8_08_4.html</anchorfile>
-      <anchor>a9a9e668280c525690934039360708f88</anchor>
-      <arglist>()</arglist>
+      <anchor>a8c24759c975f2c4e7c18913f1adad397</anchor>
+      <arglist>()=default</arglist>
     </member>
     <member kind="function">
       <type></type>
       <type></type>
       <name>retype_return_functor</name>
       <anchorfile>structsigc_1_1retype__return__functor.html</anchorfile>
-      <anchor>aa9546db86a6d1cfa7224a3a0cbad4827</anchor>
-      <arglist>()</arglist>
+      <anchor>a59293dcbd669f21528d027d89b205a9b</anchor>
+      <arglist>()=default</arglist>
     </member>
     <member kind="function">
       <type></type>
       <type></type>
       <name>retype_return_functor</name>
       <anchorfile>structsigc_1_1retype__return__functor_3_01void_00_01T__functor_01_4.html</anchorfile>
-      <anchor>a720e802de29a72d1e15626b1719844bc</anchor>
-      <arglist>()</arglist>
+      <anchor>a541afde21dab200b4461e6d5f2955665</anchor>
+      <arglist>()=default</arglist>
     </member>
     <member kind="function">
       <type></type>
       <type></type>
       <name>signal</name>
       <anchorfile>classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4.html</anchorfile>
-      <anchor>a28a1b631364fe189c672bf036eeb79d1</anchor>
-      <arglist>()</arglist>
+      <anchor>a64007f14e856dfc6fd775b0d7590b830</anchor>
+      <arglist>()=default</arglist>
     </member>
     <member kind="function">
       <type></type>
       <type></type>
       <name>accumulated</name>
       <anchorfile>classsigc_1_1signal_3_01T__return_07T__arg_8_8_8_08_4_1_1accumulated.html</anchorfile>
-      <anchor>a4f9156ded62f393d5db95576d7ec1e74</anchor>
-      <arglist>()</arglist>
+      <anchor>a082c6d8d61fb29a411b6ee457c4cfb26</anchor>
+      <arglist>()=default</arglist>
     </member>
     <member kind="function">
       <type></type>
       <type></type>
       <name>signal_with_accumulator</name>
       <anchorfile>classsigc_1_1signal__with__accumulator.html</anchorfile>
-      <anchor>aa89a63854dab616588d61e04f5798687</anchor>
-      <arglist>()</arglist>
+      <anchor>a3a3897c85039df0bdfb3badcf0123674</anchor>
+      <arglist>()=default</arglist>
     </member>
     <member kind="function">
       <type></type>
       <type></type>
       <name>slot</name>
       <anchorfile>classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html</anchorfile>
-      <anchor>add0d65ea6dc554733e766b3510c89a3a</anchor>
-      <arglist>()</arglist>
+      <anchor>acc6f588781fd085c25f1971ef5011cce</anchor>
+      <arglist>()=default</arglist>
     </member>
     <member kind="function">
       <type></type>
       <type></type>
       <name>slot</name>
       <anchorfile>classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html</anchorfile>
-      <anchor>ad1e5bc73a259ee666eb8d11d9e48d1d7</anchor>
-      <arglist>(const slot &amp;src)</arglist>
+      <anchor>a414a664fc0112a68963e6e5187287237</anchor>
+      <arglist>(const slot &amp;src)=default</arglist>
     </member>
     <member kind="function">
       <type></type>
       <type>slot &amp;</type>
       <name>operator=</name>
       <anchorfile>classsigc_1_1slot_3_01T__return_07T__arg_8_8_8_08_4.html</anchorfile>
-      <anchor>a34e1ec92ebbc3ee4dbc8acdeb525c12c</anchor>
-      <arglist>(const slot &amp;src)</arglist>
+      <anchor>af729fbf89950d5d6bfb816b8d0899ec2</anchor>
+      <arglist>(const slot &amp;src)=default</arglist>
     </member>
     <member kind="function">
       <type>slot &amp;</type>
       <type></type>
       <name>slot_const_iterator</name>
       <anchorfile>structsigc_1_1slot__const__iterator.html</anchorfile>
-      <anchor>a2b9e80b87a3400bb6f794c07f90d2d47</anchor>
-      <arglist>()</arglist>
+      <anchor>ab6ef32d4816c355b290fdd19773a9c5a</anchor>
+      <arglist>()=default</arglist>
     </member>
     <member kind="function">
       <type></type>
       <type></type>
       <name>slot_iterator</name>
       <anchorfile>structsigc_1_1slot__iterator.html</anchorfile>
-      <anchor>a82d4023ad9dc38dcde4cae6bf65cd8c8</anchor>
-      <arglist>()</arglist>
+      <anchor>a4cbc74cd51c2a45a28eac9d2284c122b</anchor>
+      <arglist>()=default</arglist>
     </member>
     <member kind="function">
       <type></type>
       <anchor>a60a463998de82604f1e42e562dd3bab2</anchor>
       <arglist>() const </arglist>
     </member>
-    <member kind="variable" protection="protected">
-      <type>internal::signal_impl *</type>
-      <name>list_</name>
-      <anchorfile>structsigc_1_1slot__list.html</anchorfile>
-      <anchor>a2c5b3ecf068ec93cdc34a4ae8d48313c</anchor>
-      <arglist></arglist>
-    </member>
   </compound>
   <compound kind="class">
     <name>sigc::track_obj_functor</name>
       <type></type>
       <name>signal_with_accumulator</name>
       <anchorfile>classsigc_1_1signal__with__accumulator.html</anchorfile>
-      <anchor>aa89a63854dab616588d61e04f5798687</anchor>
-      <arglist>()</arglist>
+      <anchor>a3a3897c85039df0bdfb3badcf0123674</anchor>
+      <arglist>()=default</arglist>
     </member>
     <member kind="function">
       <type></type>
       <type></type>
       <name>signal_with_accumulator</name>
       <anchorfile>classsigc_1_1signal__with__accumulator.html</anchorfile>
-      <anchor>aa89a63854dab616588d61e04f5798687</anchor>
-      <arglist>()</arglist>
+      <anchor>a3a3897c85039df0bdfb3badcf0123674</anchor>
+      <arglist>()=default</arglist>
     </member>
     <member kind="function">
       <type></type>
     </member>
     <member kind="define">
       <type>#define</type>
-      <name>SIGC_FUNCTORS_DEDUCE_RESULT_TYPE_WITH_DECLTYPE</name>
-      <anchorfile>group__sigcfunctors.html</anchorfile>
-      <anchor>gadf1ba3cacb09cc5c3c3e399836ec6e50</anchor>
-      <arglist></arglist>
-    </member>
-    <member kind="define">
-      <type>#define</type>
       <name>SIGC_FUNCTORS_HAVE_RESULT_TYPE</name>
       <anchorfile>group__sigcfunctors.html</anchorfile>
       <anchor>ga93b6ee8815d90adccfdceed72bcda577</anchor>
     <filename>group__slot.html</filename>
     <class kind="class">sigc::slot</class>
     <class kind="class">sigc::slot_base</class>
+    <docanchor file="group__slot" title="Creating Slots">slots-creating</docanchor>
+    <docanchor file="group__slot" title="Member Methods and Automatic Disconnection">slots-auto-disconnect</docanchor>
+    <docanchor file="group__slot" title="auto">slots-auto</docanchor>
+    <docanchor file="group__slot" title="C++ Lambdas">slots-with-lambdas</docanchor>
   </compound>
   <compound kind="group">
     <name>sorting_algorithms</name>
     <docanchor file="index" title="Basic Usage">basics</docanchor>
     <docanchor file="index" title="Using Autotools">autotools</docanchor>
     <docanchor file="index" title="Using CMake">cmake</docanchor>
-    <docanchor file="index" title="Scope of Documentation">scope</docanchor>
   </compound>
 </tagfile>
index efe85e0..08bb48f 100644 (file)
@@ -9,17 +9,19 @@
 
 #include <sigc++/sigc++.h>
 
-void on_print(const std::string& str)
+void
+on_print(const std::string& str)
 {
   std::cout << str;
 }
 
-int main()
+int
+main()
 {
   sigc::signal<void(const std::string&)> signal_print;
-  
-  signal_print.connect( sigc::ptr_fun(&on_print) );
-  
+
+  signal_print.connect(sigc::ptr_fun(&on_print));
+
   signal_print.emit("hello world\n");
 
   return 0;
index 311f0ef..87cb97c 100644 (file)
@@ -15,32 +15,32 @@ public:
   Something();
 
 protected:
-
   virtual void on_print(int a);
-  
+
   using type_signal_print = sigc::signal<void(int)>;
   type_signal_print signal_print;
-    
 };
 
 Something::Something()
 {
-  auto iter = signal_print.connect( sigc::mem_fun(*this, &Something::on_print) );
+  auto iter = signal_print.connect(sigc::mem_fun(*this, &Something::on_print));
 
   signal_print.emit(2);
 
-  //This isn't necessary - it's just to demonstrate how to disconnect:
+  // This isn't necessary - it's just to demonstrate how to disconnect:
   iter->disconnect();
-  signal_print.emit(3); //Prove that it is no longer connected.
+  signal_print.emit(3); // Prove that it is no longer connected.
 }
 
-void Something::on_print(int a)
+void
+Something::on_print(int a)
 {
   std::cout << "on_print recieved: " << a << std::endl;
 }
 
-int main()
+int
+main()
 {
-  Something something;  
+  Something something;
   return 0;
 }
index f203d51..c06d829 100644 (file)
 set (SOURCE_FILES
        connection.cc
        signal_base.cc
-       signal.cc
        trackable.cc
        functors/slot_base.cc
-       functors/slot.cc
 )
 
 set (SIGCPP_LIB_NAME sigc-${SIGCXX_API_VERSION})
index 5fc6a20..a61cc1f 100644 (file)
@@ -30,11 +30,9 @@ nobase_library_include_HEADERS = sigc++.h $(sigc_public_h) $(sigc_built_h)
 lib_LTLIBRARIES = libsigc-@SIGCXX_API_VERSION@.la
 
 libsigc_@SIGCXX_API_VERSION@_la_SOURCES =      \
-       signal.cc                               \
        signal_base.cc                          \
        trackable.cc                            \
        connection.cc                           \
-       functors/slot.cc                        \
        functors/slot_base.cc
 
 EXTRA_libsigc_@SIGCXX_API_VERSION@_la_SOURCES = $(sigc_built_cc)
index c6c1720..0efc273 100644 (file)
@@ -138,9 +138,8 @@ am__installdirs = "$(DESTDIR)$(libdir)" \
 LTLIBRARIES = $(lib_LTLIBRARIES)
 libsigc_@SIGCXX_API_VERSION@_la_LIBADD =
 am__dirstamp = $(am__leading_dot)dirstamp
-am_libsigc_@SIGCXX_API_VERSION@_la_OBJECTS = signal.lo signal_base.lo \
-       trackable.lo connection.lo functors/slot.lo \
-       functors/slot_base.lo
+am_libsigc_@SIGCXX_API_VERSION@_la_OBJECTS = signal_base.lo \
+       trackable.lo connection.lo functors/slot_base.lo
 libsigc_@SIGCXX_API_VERSION@_la_OBJECTS =  \
        $(am_libsigc_@SIGCXX_API_VERSION@_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
@@ -406,11 +405,9 @@ library_includedir = $(includedir)/$(SIGCXX_MODULE_NAME)/sigc++
 nobase_library_include_HEADERS = sigc++.h $(sigc_public_h) $(sigc_built_h)
 lib_LTLIBRARIES = libsigc-@SIGCXX_API_VERSION@.la
 libsigc_@SIGCXX_API_VERSION@_la_SOURCES = \
-       signal.cc                               \
        signal_base.cc                          \
        trackable.cc                            \
        connection.cc                           \
-       functors/slot.cc                        \
        functors/slot_base.cc
 
 EXTRA_libsigc_@SIGCXX_API_VERSION@_la_SOURCES = $(sigc_built_cc)
@@ -497,8 +494,6 @@ functors/$(am__dirstamp):
 functors/$(DEPDIR)/$(am__dirstamp):
        @$(MKDIR_P) functors/$(DEPDIR)
        @: > functors/$(DEPDIR)/$(am__dirstamp)
-functors/slot.lo: functors/$(am__dirstamp) \
-       functors/$(DEPDIR)/$(am__dirstamp)
 functors/slot_base.lo: functors/$(am__dirstamp) \
        functors/$(DEPDIR)/$(am__dirstamp)
 
@@ -514,10 +509,8 @@ distclean-compile:
        -rm -f *.tab.c
 
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/connection.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signal.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signal_base.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trackable.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@functors/$(DEPDIR)/slot.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@functors/$(DEPDIR)/slot_base.Plo@am__quote@
 
 .cc.o:
index 8fda1e4..92a7b8a 100644 (file)
@@ -1,9 +1,10 @@
 #ifndef _SIGC_ADAPTORS_DEDUCE_RESULT_TYPE_H_
 #define _SIGC_ADAPTORS_DEDUCE_RESULT_TYPE_H_
 
-namespace sigc {
+namespace sigc
+{
 
-//TODO: Is this necessary now that we don't need deduce_result_type?
+// TODO: Is this necessary now that we don't need deduce_result_type?
 /** A hint to the compiler.
  * Functors which have all methods based on templates
  * should publicly inherit from this hint.
@@ -18,7 +19,9 @@ namespace sigc {
  *
  * @ingroup adaptors
  */
-struct adaptor_base : public functor_base {};
+struct adaptor_base : public functor_base
+{
+};
 
 } /* namespace sigc */
 #endif /* _SIGC_ADAPTORS_DEDUCE_RESULT_TYPE_H_ */
index 2c1640d..2c7dda2 100644 (file)
  * via the callof<> template - a tricky way to detect the return
  * type of a functor when the argument types are known. Martin.
  */
-namespace sigc {
+
+namespace sigc
+{
 
 #ifndef DOXYGEN_SHOULD_SKIP_THIS
-template <class T_functor> struct adapts;
+template <class T_functor>
+struct adapts;
 #endif
 
 /** @defgroup adaptors Adaptors
@@ -73,45 +75,41 @@ struct adaptor_functor : public adaptor_base
   /** Invokes the wrapped functor passing on the arguments.
    * @return The return value of the functor invocation.
    */
-  decltype(auto)
-  operator()() const
-  { return functor_(); }
+  decltype(auto) operator()() const { return functor_(); }
 
   /** Invokes the wrapped functor passing on the arguments.
    * @param _A_arg... Arguments to be passed on to the functor.
    * @return The return value of the functor invocation.
    */
   template <class... T_arg>
-  decltype(auto)
-  operator()(T_arg&&... _A_arg) const
-    { return functor_(std::forward<T_arg>(_A_arg)...); }
+  decltype(auto) operator()(T_arg&&... _A_arg) const
+  {
+    return functor_(std::forward<T_arg>(_A_arg)...);
+  }
 
   /// Constructs an invalid functor.
-  adaptor_functor()
-    {}
+  adaptor_functor() = default;
 
   /** Constructs an adaptor_functor object that wraps the passed functor.
    * @param _A_functor Functor to invoke from operator()().
    */
-  explicit adaptor_functor(const T_functor& _A_functor)
-    : functor_(_A_functor)
-    {}
+  explicit adaptor_functor(const T_functor& _A_functor) : functor_(_A_functor) {}
 
   /** Constructs an adaptor_functor object that wraps the passed (member)
    * function pointer.
    * @param _A_type Pointer to function or class method to invoke from operator()().
    */
   template <class T_type>
-  explicit adaptor_functor(const T_type& _A_type)
-    : functor_(_A_type)
-    {}
+  explicit adaptor_functor(const T_type& _A_type) : functor_(_A_type)
+  {
+  }
 
   /// Functor that is invoked from operator()().
   mutable T_functor functor_;
 };
 
 #ifndef DOXYGEN_SHOULD_SKIP_THIS
-//template specialization of visitor<>::do_visit_each<>(action, functor):
+// template specialization of visitor<>::do_visit_each<>(action, functor):
 /** Performs a functor on each of the targets of a functor.
  * The function overload for sigc::adaptor_functor performs a functor
  * on the functor stored in the sigc::adaptor_functor object.
@@ -119,11 +117,10 @@ struct adaptor_functor : public adaptor_base
  * @ingroup adaptors
  */
 template <class T_functor>
-struct visitor<adaptor_functor<T_functor> >
+struct visitor<adaptor_functor<T_functor>>
 {
   template <class T_action>
-  static void do_visit_each(const T_action& _A_action,
-                            const adaptor_functor<T_functor>& _A_target)
+  static void do_visit_each(const T_action& _A_action, const adaptor_functor<T_functor>& _A_target)
   {
     sigc::visit_each(_A_action, _A_target.functor_);
   }
@@ -140,9 +137,13 @@ struct visitor<adaptor_functor<T_functor> >
  * @ingroup adaptors
  */
 #ifndef DOXYGEN_SHOULD_SKIP_THIS
-template <class T_functor, bool I_isadaptor = std::is_base_of<adaptor_base, T_functor>::value> struct adaptor_trait;
+template <class T_functor, bool I_isadaptor = std::is_base_of<adaptor_base, T_functor>::value>
+struct adaptor_trait;
 #else
-template <class T_functor, bool I_isadaptor = std::is_base_of<adaptor_base, T_functor>::value> struct adaptor_trait {};
+template <class T_functor, bool I_isadaptor = std::is_base_of<adaptor_base, T_functor>::value>
+struct adaptor_trait
+{
+};
 #endif
 
 /** Trait that specifies what is the adaptor version of a functor type.
@@ -243,9 +244,7 @@ struct adapts : public adaptor_base
   /** Constructs an adaptor that wraps the passed functor.
    * @param _A_functor Functor to invoke from operator()().
    */
-  explicit adapts(const T_functor& _A_functor)
-    : functor_(_A_functor)
-    {}
+  explicit adapts(const T_functor& _A_functor) : functor_(_A_functor) {}
 
   /// Adaptor that is invoked from operator()().
   mutable adaptor_type functor_;
index 459b884..e055a4f 100644 (file)
@@ -8,15 +8,16 @@
 #include <sigc++/tuple-utils/tuple_end.h>
 #include <sigc++/tuple-utils/tuple_transform_each.h>
 
-namespace sigc {
-
+namespace sigc
+{
 
 /** @defgroup bind bind(), bind_return()
  * sigc::bind() alters an arbitrary functor by fixing arguments to certain values.
  * Up to 7 arguments can be bound at a time.
  * For single argument binding, overloads of sigc::bind() are provided that let you
  * specify the zero-based position of the argument to fix with the first template parameter.
- * (A value of @p -1 fixes the last argument so sigc::bind<-1>() gives the same result as sigc::bind().)
+ * (A value of @p -1 fixes the last argument so sigc::bind<-1>() gives the same result as
+ * sigc::bind().)
  * The types of the arguments can optionally be specified if not deduced.
  *
  * @par Examples:
@@ -85,17 +86,12 @@ namespace internal
 template <class T_element>
 struct TransformEachInvoker
 {
-  //We take T_element as non-const because invoke() is not const.
-  //TODO: Take element as T_element&& ?
-  constexpr
-  static
-  decltype(auto)
-  transform(T_element& element) {
-    return element.invoke();
-  }
+  // We take T_element as non-const because invoke() is not const.
+  // TODO: Take element as T_element&& ?
+  constexpr static decltype(auto) transform(T_element& element) { return element.invoke(); }
 };
 
-} //namespace internal
+} // namespace internal
 
 /** Adaptor that binds arguments to the wrapped functor.
  * Use the convenience function sigc::bind() to create an instance of sigc::bind_functor.
@@ -119,51 +115,49 @@ struct bind_functor : public adapts<T_functor>
    * @return The return value of the functor invocation.
    */
   template <class... T_arg>
-  decltype(auto)
-  operator()(T_arg&&... _A_arg)
-    {
-      //For instance, if I_location is 1, and _A_arg has 4 arguments,
-      //we would want to call operator() with (_A_arg0, bound, _A_arg1, _A_arg2).
-      
-      using tuple_type_args = std::tuple<type_trait_pass_t<T_arg>...>;
-      const auto t_args = std::tuple<T_arg...>(std::forward<T_arg>(_A_arg)...);
-      constexpr auto t_args_size = std::tuple_size<tuple_type_args>::value;
-      
-      //Prevent calling tuple_start<> with values that will cause a compilation error.
-      static_assert(I_location <= t_args_size,
-        "I_location must be less than or equal to the number of arguments.");
-
-      const auto t_start = internal::tuple_start<I_location>(t_args);
-      const auto t_bound = internal::tuple_transform_each<internal::TransformEachInvoker>(bound_);
-      const auto t_end = internal::tuple_end<t_args_size - I_location>(t_args);
-      const auto t_with_bound = std::tuple_cat(t_start, t_bound, t_end);
-
-      constexpr const auto seq = std::make_index_sequence<std::tuple_size<decltype(t_with_bound)>::value>();
-      return call_functor_operator_parentheses(t_with_bound, seq);
-    }
+  decltype(auto) operator()(T_arg&&... _A_arg)
+  {
+    // For instance, if I_location is 1, and _A_arg has 4 arguments,
+    // we would want to call operator() with (_A_arg0, bound, _A_arg1, _A_arg2).
+
+    using tuple_type_args = std::tuple<type_trait_pass_t<T_arg>...>;
+    const auto t_args = std::tuple<T_arg...>(std::forward<T_arg>(_A_arg)...);
+    constexpr auto t_args_size = std::tuple_size<tuple_type_args>::value;
+
+    // Prevent calling tuple_start<> with values that will cause a compilation error.
+    static_assert(I_location <= t_args_size,
+      "I_location must be less than or equal to the number of arguments.");
+
+    const auto t_start = internal::tuple_start<I_location>(t_args);
+    const auto t_bound = internal::tuple_transform_each<internal::TransformEachInvoker>(bound_);
+    const auto t_end = internal::tuple_end<t_args_size - I_location>(t_args);
+    const auto t_with_bound = std::tuple_cat(t_start, t_bound, t_end);
+
+    constexpr const auto seq =
+      std::make_index_sequence<std::tuple_size<decltype(t_with_bound)>::value>();
+    return call_functor_operator_parentheses(t_with_bound, seq);
+  }
 
   /** Constructs a bind_functor object that binds an argument to the passed functor.
    * @param _A_func Functor to invoke from operator()().
    * @param _A_bound Argument to bind to the functor.
    */
   bind_functor(type_trait_take_t<T_functor> _A_func, type_trait_take_t<T_bound>... _A_bound)
-    : adapts<T_functor>(_A_func), bound_(_A_bound...)
-    {}
+  : adapts<T_functor>(_A_func), bound_(_A_bound...)
+  {
+  }
 
 private:
   /// The arguments bound to the functor.
   std::tuple<bound_argument<T_bound>...> bound_;
 
-  template<class T, std::size_t... Is>
-  decltype(auto)
-  call_functor_operator_parentheses(T&& tuple,
-    std::index_sequence<Is...>)
+  template <class T, std::size_t... Is>
+  decltype(auto) call_functor_operator_parentheses(T&& tuple, std::index_sequence<Is...>)
   {
     return (this->functor_)(std::get<Is>(std::forward<T>(tuple))...);
   }
 };
 
-
 /** Adaptor that binds argument(s) to the wrapped functor.
  * This template specialization fixes the last argument(s) of the wrapped functor.
  *
@@ -181,62 +175,57 @@ struct bind_functor<-1, T_functor, T_type...> : public adapts<T_functor>
    * @return The return value of the functor invocation.
    */
   template <class... T_arg>
-  decltype(auto)
-  operator()(T_arg&&... _A_arg)
-    {
-      //For instance, if _A_arg has 4 arguments,
-      //we would want to call operator() with (_A_arg0, _A_arg1, _A_arg2, bound).
-      
-      const auto t_args = std::tuple<T_arg...>(std::forward<T_arg>(_A_arg)...);
-      const auto t_bound = internal::tuple_transform_each<internal::TransformEachInvoker>(bound_);
-      const auto t_with_bound = std::tuple_cat(t_args, t_bound);
-
-      constexpr auto seq = std::make_index_sequence<std::tuple_size<decltype(t_with_bound)>::value>();
-      return call_functor_operator_parentheses(t_with_bound, seq);
-    }
+  decltype(auto) operator()(T_arg&&... _A_arg)
+  {
+    // For instance, if _A_arg has 4 arguments,
+    // we would want to call operator() with (_A_arg0, _A_arg1, _A_arg2, bound).
+
+    const auto t_args = std::tuple<T_arg...>(std::forward<T_arg>(_A_arg)...);
+    const auto t_bound = internal::tuple_transform_each<internal::TransformEachInvoker>(bound_);
+    const auto t_with_bound = std::tuple_cat(t_args, t_bound);
+
+    constexpr auto seq = std::make_index_sequence<std::tuple_size<decltype(t_with_bound)>::value>();
+    return call_functor_operator_parentheses(t_with_bound, seq);
+  }
 
   /** Constructs a bind_functor object that binds an argument to the passed functor.
    * @param _A_func Functor to invoke from operator()().
    * @param _A_bound Arguments to bind to the functor.
    */
   bind_functor(type_trait_take_t<T_functor> _A_func, type_trait_take_t<T_type>... _A_bound)
-    : adapts<T_functor>(_A_func), bound_(_A_bound...)
-    {}
+  : adapts<T_functor>(_A_func), bound_(_A_bound...)
+  {
+  }
 
   /// The argument bound to the functor.
   std::tuple<bound_argument<T_type>...> bound_;
 
 private:
-  template<class T, std::size_t... Is>
-  decltype(auto)
-  call_functor_operator_parentheses(T&& tuple,
-    std::index_sequence<Is...>)
+  template <class T, std::size_t... Is>
+  decltype(auto) call_functor_operator_parentheses(T&& tuple, std::index_sequence<Is...>)
   {
     return (this->functor_)(std::get<Is>(std::forward<T>(tuple))...);
   }
 };
 
+namespace
+{
 
-namespace {
-
-//TODO: Avoid duplication with TrackObjVisitForEach in track_obj.h
-template<typename T_element>
+// TODO: Avoid duplication with TrackObjVisitForEach in track_obj.h
+template <typename T_element>
 struct TupleVisitorVisitEach
 {
-  template<typename T_action>
-  constexpr
-  static
-  void
-  visit(const T_element& element, const T_action& action)
+  template <typename T_action>
+  constexpr static void visit(const T_element& element, T_action&& action)
   {
-    sigc::visit_each(action, element);
+    sigc::visit_each(std::forward<T_action>(action), element);
   }
 };
 
-} //anonymous namespace
+} // anonymous namespace
 
 #ifndef DOXYGEN_SHOULD_SKIP_THIS
-//template specialization of visitor<>::do_visit_each<>(action, functor):
+// template specialization of visitor<>::do_visit_each<>(action, functor):
 /** Performs a functor on each of the targets of a functor.
  * The function overload for sigc::bind_functor performs a functor on the
  * functor and on the object instances stored in the sigc::bind_functor object.
@@ -244,18 +233,18 @@ struct TupleVisitorVisitEach
  * @ingroup bind
  */
 template <int T_loc, class T_functor, class... T_bound>
-struct visitor<bind_functor<T_loc, T_functor, T_bound...> >
+struct visitor<bind_functor<T_loc, T_functor, T_bound...>>
 {
   template <class T_action>
-  static void do_visit_each(const T_action& _A_action,
-                            const bind_functor<T_loc, T_functor, T_bound...>& _A_target)
+  static void do_visit_each(
+    const T_action& _A_action, const bind_functor<T_loc, T_functor, T_bound...>& _A_target)
   {
     sigc::visit_each(_A_action, _A_target.functor_);
     sigc::visit_each(_A_action, std::get<0>(_A_target.bound_));
   }
 };
 
-//template specialization of visitor<>::do_visit_each<>(action, functor):
+// template specialization of visitor<>::do_visit_each<>(action, functor):
 /** Performs a functor on each of the targets of a functor.
  * The function overload for sigc::bind_functor performs a functor on the
  * functor and on the object instances stored in the sigc::bind_functor object.
@@ -263,11 +252,11 @@ struct visitor<bind_functor<T_loc, T_functor, T_bound...> >
  * @ingroup bind
  */
 template <class T_functor, class... T_type>
-struct visitor<bind_functor<-1, T_functor, T_type...> >
+struct visitor<bind_functor<-1, T_functor, T_type...>>
 {
   template <typename T_action>
-  static void do_visit_each(const T_action& _A_action,
-                            const bind_functor<-1, T_functor, T_type...>& _A_target)
+  static void do_visit_each(
+    const T_action& _A_action, const bind_functor<-1, T_functor, T_type...>& _A_target)
   {
     sigc::visit_each(_A_action, _A_target.functor_);
 
@@ -277,7 +266,8 @@ struct visitor<bind_functor<-1, T_functor, T_type...> >
 
 #endif // DOXYGEN_SHOULD_SKIP_THIS
 
-/** Creates an adaptor of type sigc::bind_functor which binds the passed argument to the passed functor.
+/** Creates an adaptor of type sigc::bind_functor which binds the passed argument to the passed
+ * functor.
  * The optional template argument @e I_location specifies the zero-based
  * position of the argument to be fixed (@p -1 stands for the last argument).
  *
@@ -291,11 +281,11 @@ template <int I_location, class T_functor, class... T_bound>
 inline decltype(auto)
 bind(const T_functor& _A_func, T_bound... _A_b)
 {
-  return bind_functor<I_location, T_functor, T_bound...>
-           (_A_func, _A_b...);
+  return bind_functor<I_location, T_functor, T_bound...>(_A_func, _A_b...);
 }
 
-/** Creates an adaptor of type sigc::bind_functor which fixes the last arguments of the passed functor.
+/** Creates an adaptor of type sigc::bind_functor which fixes the last arguments of the passed
+ * functor.
  * This function overload fixes the last arguments of @e _A_func.
  *
  * @param _A_func Functor that should be wrapped.
@@ -307,10 +297,10 @@ bind(const T_functor& _A_func, T_bound... _A_b)
 template <class T_functor, class... T_type>
 inline decltype(auto)
 bind(const T_functor& _A_func, T_type... _A_b)
-{ return bind_functor<-1, T_functor, T_type...>(_A_func, _A_b...);
+{
+  return bind_functor<-1, T_functor, T_type...>(_A_func, _A_b...);
 }
 
-
 } /* namespace sigc */
 
 #endif /* _SIGC_ADAPTORS_BIND_H_ */
index 201376a..0f4f9b1 100644 (file)
@@ -3,10 +3,12 @@
 #include <sigc++/adaptors/adaptor_trait.h>
 #include <sigc++/adaptors/bound_argument.h>
 
-namespace sigc {
+namespace sigc
+{
 
 /** Adaptor that fixes the return value of the wrapped functor.
- * Use the convenience function sigc::bind_return() to create an instance of sigc::bind_return_functor.
+ * Use the convenience function sigc::bind_return() to create an instance of
+ * sigc::bind_return_functor.
  *
  * The following template arguments are used:
  * - @e T_return Type of the fixed return value.
@@ -24,35 +26,41 @@ struct bind_return_functor : public adapts<T_functor>
    */
   typename unwrap_reference<T_return>::type operator()();
 
-
   /** Invokes the wrapped functor passing on the arguments.
    * @param _A_a... Arguments to be passed on to the functor.
    * @return The fixed return value.
    */
   template <class... T_arg>
   inline typename unwrap_reference<T_return>::type operator()(T_arg... _A_a)
-    { this->functor_.template operator()<type_trait_pass_t<T_arg>...>
-        (_A_a...); return ret_value_.invoke();
-    }
+  {
+    this->functor_.template operator()<type_trait_pass_t<T_arg>...>(_A_a...);
+    return ret_value_.invoke();
+  }
 
   /** Constructs a bind_return_functor object that fixes the return value to @p _A_ret_value.
    * @param _A_functor Functor to invoke from operator()().
    * @param _A_ret_value Value to return from operator()().
    */
-  bind_return_functor(type_trait_take_t<T_functor> _A_functor, type_trait_take_t<T_return> _A_ret_value)
-    : adapts<T_functor>(_A_functor), ret_value_(_A_ret_value)
-    {}
+  bind_return_functor(
+    type_trait_take_t<T_functor> _A_functor, type_trait_take_t<T_return> _A_ret_value)
+  : adapts<T_functor>(_A_functor), ret_value_(_A_ret_value)
+  {
+  }
 
   /// The fixed return value.
   bound_argument<T_return> ret_value_; // public, so that visit_each() can access it
 };
 
 template <class T_return, class T_functor>
-typename unwrap_reference<T_return>::type bind_return_functor<T_return, T_functor>::operator()()
-  { this->functor_(); return ret_value_.invoke(); }
+typename unwrap_reference<T_return>::type
+bind_return_functor<T_return, T_functor>::operator()()
+{
+  this->functor_();
+  return ret_value_.invoke();
+}
 
 #ifndef DOXYGEN_SHOULD_SKIP_THIS
-//template specialization of visitor<>::do_visit_each<>(action, functor):
+// template specialization of visitor<>::do_visit_each<>(action, functor):
 /** Performs a functor on each of the targets of a functor.
  * The function overload for sigc::bind_return_functor performs a functor on the
  * functor and on the object instance stored in the sigc::bind_return_functor object.
@@ -60,11 +68,11 @@ typename unwrap_reference<T_return>::type bind_return_functor<T_return, T_functo
  * @ingroup bind
  */
 template <class T_return, class T_functor>
-struct visitor<bind_return_functor<T_return, T_functor> >
+struct visitor<bind_return_functor<T_return, T_functor>>
 {
   template <class T_action>
-  static void do_visit_each(const T_action& _A_action,
-                            const bind_return_functor<T_return, T_functor>& _A_target)
+  static void do_visit_each(
+    const T_action& _A_action, const bind_return_functor<T_return, T_functor>& _A_target)
   {
     sigc::visit_each(_A_action, _A_target.ret_value_);
     sigc::visit_each(_A_action, _A_target.functor_);
@@ -72,7 +80,8 @@ struct visitor<bind_return_functor<T_return, T_functor> >
 };
 #endif // DOXYGEN_SHOULD_SKIP_THIS
 
-/** Creates an adaptor of type sigc::bind_return_functor which fixes the return value of the passed functor to the passed argument.
+/** Creates an adaptor of type sigc::bind_return_functor which fixes the return value of the passed
+ * functor to the passed argument.
  *
  * @param _A_functor Functor that should be wrapped.
  * @param _A_ret_value Argument to fix the return value of @e _A_functor to.
@@ -83,7 +92,9 @@ struct visitor<bind_return_functor<T_return, T_functor> >
 template <class T_return, class T_functor>
 inline bind_return_functor<T_return, T_functor>
 bind_return(const T_functor& _A_functor, T_return _A_ret_value)
-{ return bind_return_functor<T_return, T_functor>(_A_functor, _A_ret_value); }
+{
+  return bind_return_functor<T_return, T_functor>(_A_functor, _A_ret_value);
+}
 
 } /* namespace sigc */
 #endif /* _SIGC_ADAPTORS_BIND_RETURN_H_ */
index 60b26b1..aacf388 100644 (file)
 #ifndef _SIGC_BOUND_ARGUMENT_H_
 #define _SIGC_BOUND_ARGUMENT_H_
 
-
 #include <sigc++/limit_reference.h>
 #include <sigc++/reference_wrapper.h>
 
-namespace sigc {
+namespace sigc
+{
 
-/** A bound_argument<Foo> object stores a bound (for instance, with sigc::bind(), or sigc::bind_return()) argument.
+/** A bound_argument<Foo> object stores a bound (for instance, with sigc::bind(), or
+ * sigc::bind_return()) argument.
  *
  * If Foo is a wrapped reference to a class Bar (std::reference_wrapper<Bar>) then this
  * object is implemented on top of a limit_reference. When the slot is
@@ -52,21 +53,17 @@ public:
   /** Constructor.
    * @param _A_argument The argument to bind.
    */
-  bound_argument(const T_type& _A_argument)
-    : visited_(_A_argument)
-    {}
+  bound_argument(const T_type& _A_argument) : visited_(_A_argument) {}
 
   /** Retrieve the entity to visit in visit_each().
    * @return The bound argument.
    */
-  inline const T_type& visit() const
-    { return visited_; }
+  inline const T_type& visit() const { return visited_; }
 
   /** Retrieve the entity to pass to the bound functor or return.
    * @return The bound argument.
    */
-  inline T_type& invoke()
-    { return visited_; }
+  inline T_type& invoke() { return visited_; }
 
 private:
   /** The value of the argument.
@@ -74,33 +71,32 @@ private:
   T_type visited_;
 };
 
-//Template specialization:
+// Template specialization:
 /** bound_argument object for a bound argument that is passed by bind() or
  * returned by bind_return() by reference, specialized for std::reference_wrapper<> types.
  * @e T_wrapped The type of the bound argument.
  */
 template <class T_wrapped>
-class bound_argument< std::reference_wrapper<T_wrapped> >
+class bound_argument<std::reference_wrapper<T_wrapped>>
 {
 public:
   /** Constructor.
    * @param _A_argument The argument to bind.
    */
   bound_argument(const std::reference_wrapper<T_wrapped>& _A_argument)
-    : visited_(unwrap(_A_argument))
-    {}
+  : visited_(unwrap(_A_argument))
+  {
+  }
 
   /** Retrieve the entity to visit in visit_each().
    * @return The limited_reference to the bound argument.
    */
-  inline const limit_reference<T_wrapped>& visit() const
-    { return visited_; }
+  inline const limit_reference<T_wrapped>& visit() const { return visited_; }
 
   /** Retrieve the entity to pass to the bound functor or return.
    * @return The bound argument.
    */
-  inline T_wrapped& invoke()
-    { return visited_.invoke(); }
+  inline T_wrapped& invoke() { return visited_.invoke(); }
 
 private:
   /** The limited_reference to the bound argument.
@@ -113,27 +109,26 @@ private:
  * - @e T_wrapped The type of the bound argument.
  */
 template <class T_wrapped>
-class bound_argument< std::reference_wrapper<const T_wrapped> >
+class bound_argument<std::reference_wrapper<const T_wrapped>>
 {
 public:
   /** Constructor.
    * @param _A_argument The argument to bind.
    */
   bound_argument(const std::reference_wrapper<const T_wrapped>& _A_argument)
-    : visited_(unwrap(_A_argument))
-    {}
+  : visited_(unwrap(_A_argument))
+  {
+  }
 
   /** Retrieve the entity to visit in visit_each().
    * @return The const_limited_reference to the bound argument.
    */
-  inline const limit_reference<const T_wrapped>& visit() const
-    { return visited_; }
+  inline const limit_reference<const T_wrapped>& visit() const { return visited_; }
 
   /** Retrieve the entity to pass to the bound functor or return.
    * @return The bound argument.
    */
-  inline const T_wrapped& invoke()
-    { return visited_.invoke(); }
+  inline const T_wrapped& invoke() { return visited_.invoke(); }
 
 private:
   /** The const_limited_reference to the bound argument.
@@ -151,11 +146,10 @@ private:
  * @param _A_argument The visited instance.
  */
 template <class T_type>
-struct visitor<bound_argument<T_type> >
+struct visitor<bound_argument<T_type>>
 {
   template <class T_action>
-  static void do_visit_each(const T_action& _A_action,
-                            const bound_argument<T_type>& _A_argument)
+  static void do_visit_each(const T_action& _A_action, const bound_argument<T_type>& _A_argument)
   {
     sigc::visit_each(_A_action, _A_argument.visit());
   }
@@ -164,5 +158,4 @@ struct visitor<bound_argument<T_type> >
 
 } /* namespace sigc */
 
-
 #endif /* _SIGC_BOUND_ARGUMENT_H_ */
index adfc8f5..9d9050c 100644 (file)
@@ -2,7 +2,8 @@
 #define _SIGC_ADAPTORS_COMPOSE_H_
 #include <sigc++/adaptors/adaptor_trait.h>
 
-namespace sigc {
+namespace sigc
+{
 
 /** @defgroup compose compose()
  * sigc::compose() combines two or three arbitrary functors.
@@ -14,7 +15,8 @@ namespace sigc {
  * float square_root(float a)  { return sqrtf(a); }
  * float sum(float a, float b) { return a+b; }
  * std::cout << sigc::compose(&square_root, &sum)(9, 16); // calls square_root(sum(3,6))
- * std::cout << sigc::compose(&sum, &square_root, &square_root)(9); // calls sum(square_root(9), square_root(9))
+ * std::cout << sigc::compose(&sum, &square_root, &square_root)(9); // calls sum(square_root(9),
+ * square_root(9))
  * @endcode
  *
  * The functor sigc::compose() returns can be passed directly into
@@ -46,24 +48,23 @@ struct compose1_functor : public adapts<T_setter>
   using getter_type = T_getter;
   using result_type = typename adaptor_type::result_type;
 
-  decltype(auto)
-  operator()()
-    { return this->functor_(get_()); }
-
+  decltype(auto) operator()() { return this->functor_(get_()); }
 
   template <class... T_arg>
-  decltype(auto)
-  operator()(T_arg&&... _A_a)
-    return this->functor_(get_(std::forward<T_arg>(_A_a)...));
-    }
+  decltype(auto) operator()(T_arg&&... _A_a)
+  {
+    return this->functor_(get_(std::forward<T_arg>(_A_a)...));
+  }
 
   /** Constructs a compose1_functor object that combines the passed functors.
-   * @param _A_setter Functor that receives the return values of the invokation of @e _A_getter1 and @e _A_getter2.
+   * @param _A_setter Functor that receives the return values of the invokation of @e _A_getter1 and
+   * @e _A_getter2.
    * @param _A_getter Functor to invoke from operator()().
    */
   compose1_functor(const T_setter& _A_setter, const T_getter& _A_getter)
-    : adapts<T_setter>(_A_setter), get_(_A_getter)
-    {}
+  : adapts<T_setter>(_A_setter), get_(_A_getter)
+  {
+  }
 
   getter_type get_; // public, so that visit_each() can access it
 };
@@ -87,34 +88,32 @@ struct compose2_functor : public adapts<T_setter>
   using getter2_type = T_getter2;
   using result_type = typename adaptor_type::result_type;
 
-  decltype(auto)
-  operator()()
-    { return this->functor_(get1_(), get2_()); }
-
+  decltype(auto) operator()() { return this->functor_(get1_(), get2_()); }
 
   template <class... T_arg>
-  decltype(auto)
-  operator()(T_arg... _A_a)
-    return this->functor_(get1_(_A_a...), get2_(_A_a...));
-    }
+  decltype(auto) operator()(T_arg... _A_a)
+  {
+    return this->functor_(get1_(_A_a...), get2_(_A_a...));
+  }
 
   /** Constructs a compose2_functor object that combines the passed functors.
-   * @param _A_setter Functor that receives the return values of the invokation of @e _A_getter1 and @e _A_getter2.
+   * @param _A_setter Functor that receives the return values of the invokation of @e _A_getter1 and
+   * @e _A_getter2.
    * @param _A_getter1 Functor to invoke from operator()().
    * @param _A_getter2 Functor to invoke from operator()().
    */
-  compose2_functor(const T_setter& _A_setter,
-                   const T_getter1& _A_getter1,
-                   const T_getter2& _A_getter2)
-    : adapts<T_setter>(_A_setter), get1_(_A_getter1), get2_(_A_getter2)
-    {}
+  compose2_functor(
+    const T_setter& _A_setter, const T_getter1& _A_getter1, const T_getter2& _A_getter2)
+  : adapts<T_setter>(_A_setter), get1_(_A_getter1), get2_(_A_getter2)
+  {
+  }
 
   getter1_type get1_; // public, so that visit_each() can access it
   getter2_type get2_; // public, so that visit_each() can access it
 };
 
 #ifndef DOXYGEN_SHOULD_SKIP_THIS
-//template specialization of visitor<>::do_visit_each<>(action, functor):
+// template specialization of visitor<>::do_visit_each<>(action, functor):
 /** Performs a functor on each of the targets of a functor.
  * The function overload for sigc::compose1_functor performs a functor on the
  * functors stored in the sigc::compose1_functor object.
@@ -122,18 +121,18 @@ struct compose2_functor : public adapts<T_setter>
  * @ingroup compose
  */
 template <class T_setter, class T_getter>
-struct visitor<compose1_functor<T_setter, T_getter> >
+struct visitor<compose1_functor<T_setter, T_getter>>
 {
   template <class T_action>
-  static void do_visit_each(const T_action& _A_action,
-                            const compose1_functor<T_setter, T_getter>& _A_target)
+  static void do_visit_each(
+    const T_action& _A_action, const compose1_functor<T_setter, T_getter>& _A_target)
   {
     sigc::visit_each(_A_action, _A_target.functor_);
     sigc::visit_each(_A_action, _A_target.get_);
   }
 };
 
-//template specialization of visitor<>::do_visit_each<>(action, functor):
+// template specialization of visitor<>::do_visit_each<>(action, functor):
 /** Performs a functor on each of the targets of a functor.
  * The function overload for sigc::compose2_functor performs a functor on the
  * functors stored in the sigc::compose2_functor object.
@@ -141,11 +140,11 @@ struct visitor<compose1_functor<T_setter, T_getter> >
  * @ingroup compose
  */
 template <class T_setter, class T_getter1, class T_getter2>
-struct visitor<compose2_functor<T_setter, T_getter1, T_getter2> >
+struct visitor<compose2_functor<T_setter, T_getter1, T_getter2>>
 {
   template <class T_action>
-  static void do_visit_each(const T_action& _A_action,
-                            const compose2_functor<T_setter, T_getter1, T_getter2>& _A_target)
+  static void do_visit_each(
+    const T_action& _A_action, const compose2_functor<T_setter, T_getter1, T_getter2>& _A_target)
   {
     sigc::visit_each(_A_action, _A_target.functor_);
     sigc::visit_each(_A_action, _A_target.get1_);
@@ -158,28 +157,35 @@ struct visitor<compose2_functor<T_setter, T_getter1, T_getter2> >
  *
  * @param _A_setter Functor that receives the return value of the invokation of @e _A_getter.
  * @param _A_getter Functor to invoke from operator()().
- * @return Adaptor that executes @e _A_setter with the value returned from invokation of @e _A_getter.
+ * @return Adaptor that executes @e _A_setter with the value returned from invokation of @e
+ * _A_getter.
  *
  * @ingroup compose
  */
 template <class T_setter, class T_getter>
 inline compose1_functor<T_setter, T_getter>
 compose(const T_setter& _A_setter, const T_getter& _A_getter)
-  { return compose1_functor<T_setter, T_getter>(_A_setter, _A_getter); }
+{
+  return compose1_functor<T_setter, T_getter>(_A_setter, _A_getter);
+}
 
 /** Creates an adaptor of type sigc::compose2_functor which combines three functors.
  *
- * @param _A_setter Functor that receives the return values of the invokation of @e _A_getter1 and @e _A_getter2.
+ * @param _A_setter Functor that receives the return values of the invokation of @e _A_getter1 and
+ * @e _A_getter2.
  * @param _A_getter1 Functor to invoke from operator()().
  * @param _A_getter2 Functor to invoke from operator()().
- * @return Adaptor that executes @e _A_setter with the values return from invokation of @e _A_getter1 and @e _A_getter2.
+ * @return Adaptor that executes @e _A_setter with the values return from invokation of @e
+ * _A_getter1 and @e _A_getter2.
  *
  * @ingroup compose
  */
 template <class T_setter, class T_getter1, class T_getter2>
 inline compose2_functor<T_setter, T_getter1, T_getter2>
 compose(const T_setter& _A_setter, const T_getter1& _A_getter1, const T_getter2& _A_getter2)
-  { return compose2_functor<T_setter, T_getter1, T_getter2>(_A_setter, _A_getter1, _A_getter2); }
+{
+  return compose2_functor<T_setter, T_getter1, T_getter2>(_A_setter, _A_getter1, _A_getter2);
+}
 
 } /* namespace sigc */
 #endif /* _SIGC_ADAPTORS_COMPOSE_H_ */
index 5948a66..4f8b76c 100644 (file)
@@ -2,7 +2,8 @@
 #define _SIGC_ADAPTORS_EXCEPTION_CATCH_H_
 #include <sigc++/adaptors/adaptor_trait.h>
 
-namespace sigc {
+namespace sigc
+{
 
 /*
    functor adaptor:  exception_catch(functor, catcher)
@@ -54,40 +55,42 @@ namespace sigc {
  * @ingroup adaptors
  */
 
-template <class T_functor, class T_catcher, class T_return = typename adapts<T_functor>::result_type>
+template <class T_functor, class T_catcher,
+  class T_return = typename adapts<T_functor>::result_type>
 struct exception_catch_functor : public adapts<T_functor>
 {
   using adaptor_type = typename adapts<T_functor>::adaptor_type;
   using result_type = T_return;
 
-  decltype(auto)
-  operator()()
+  decltype(auto) operator()()
+  {
+    try
     {
-      try
-        { return this->functor_(); }
-      catch (...)
-        { return catcher_(); }
+      return this->functor_();
     }
-
+    catch (...)
+    {
+      return catcher_();
+    }
+  }
 
   template <class... T_arg>
-  decltype(auto)
-  operator()(T_arg... _A_a)
+  decltype(auto) operator()(T_arg... _A_a)
+  {
+    try
     {
-      try
-        {
-          return this->functor_.template operator()<type_trait_pass_t<T_arg>...>
-            (_A_a...);
-        }
-      catch (...)
-        { return catcher_(); }
+      return this->functor_.template operator()<type_trait_pass_t<T_arg>...>(_A_a...);
     }
+    catch (...)
+    {
+      return catcher_();
+    }
+  }
 
-
-  exception_catch_functor(const T_functor& _A_func,
-                          const T_catcher& _A_catcher)
-    : adapts<T_functor>(_A_func), catcher_(_A_catcher)
-    {}
+  exception_catch_functor(const T_functor& _A_func, const T_catcher& _A_catcher)
+  : adapts<T_functor>(_A_func), catcher_(_A_catcher)
+  {
+  }
 
   T_catcher catcher_;
 };
@@ -100,37 +103,36 @@ struct exception_catch_functor<T_functor, T_catcher, void> : public adapts<T_fun
   using adaptor_type = typename adapts<T_functor>::adaptor_type;
 
   template <class... T_arg>
-  decltype(auto)
-  operator()(T_arg... _A_a)
+  decltype(auto) operator()(T_arg... _A_a)
+  {
+    try
     {
-      try
-        {
-          return this->functor_.template operator()<type_trait_pass_t<T_arg>...>
-            (_A_a...);
-        }
-      catch (...)
-        { return catcher_(); }
+      return this->functor_.template operator()<type_trait_pass_t<T_arg>...>(_A_a...);
     }
+    catch (...)
+    {
+      return catcher_();
+    }
+  }
 
+  exception_catch_functor() = default;
+  exception_catch_functor(const T_functor& _A_func, const T_catcher& _A_catcher)
+  : adapts<T_functor>(_A_func), catcher_(_A_catcher)
+  {
+  }
+  ~exception_catch_functor() = default;
 
-  exception_catch_functor() {}
-  exception_catch_functor(const T_functor& _A_func,
-                          const T_catcher& _A_catcher)
-    : adapts<T_functor>(_A_func), catcher_(_A_catcher)
-    {}
-  ~exception_catch_functor() {}
-
-    T_catcher catcher_;
+  T_catcher catcher_;
 };
 
 #ifndef DOXYGEN_SHOULD_SKIP_THIS
-//template specialization of visitor<>::do_visit_each<>(action, functor):
+// template specialization of visitor<>::do_visit_each<>(action, functor):
 template <class T_functor, class T_catcher, class T_return>
-struct visitor<exception_catch_functor<T_functor, T_catcher, T_return> >
+struct visitor<exception_catch_functor<T_functor, T_catcher, T_return>>
 {
   template <typename T_action>
   static void do_visit_each(const T_action& _A_action,
-                            const exception_catch_functor<T_functor, T_catcher, T_return>& _A_target)
+    const exception_catch_functor<T_functor, T_catcher, T_return>& _A_target)
   {
     sigc::visit_each(_A_action, _A_target.functor_);
     sigc::visit_each(_A_action, _A_target.catcher_);
@@ -141,7 +143,9 @@ struct visitor<exception_catch_functor<T_functor, T_catcher, T_return> >
 template <class T_functor, class T_catcher>
 inline decltype(auto)
 exception_catch(const T_functor& _A_func, const T_catcher& _A_catcher)
-  { return exception_catch_functor<T_functor, T_catcher>(_A_func, _A_catcher); }
+{
+  return exception_catch_functor<T_functor, T_catcher>(_A_func, _A_catcher);
+}
 
 } /* namespace sigc */
 #endif /* _SIGC_ADAPTORS_EXCEPTION_CATCH_H_ */
index 6717aa4..f31b46d 100644 (file)
@@ -5,7 +5,8 @@
 #include <sigc++/tuple-utils/tuple_end.h>
 #include <sigc++/tuple-utils/tuple_start.h>
 
-namespace sigc {
+namespace sigc
+{
 
 /** @defgroup hide hide(), hide_return()
  * sigc::hide() alters an arbitrary functor in that it adds a parameter
@@ -15,7 +16,8 @@ namespace sigc {
  * You may optionally specify the zero-based position of the parameter
  * to ignore as a template argument. The default is to ignore the last
  * parameter.
- * (A value of @p -1 adds a parameter at the end so sigc::hide<-1>() gives the same result as sigc::hide().)
+ * (A value of @p -1 adds a parameter at the end so sigc::hide<-1>() gives the same result as
+ sigc::hide().)
  *
  * The type of the parameter can optionally be specified if not deduced.
  *
@@ -44,7 +46,8 @@ namespace sigc {
  * @par Example:
  * @code
  * // multiple argument hiding ...
- * sigc::hide(sigc::hide(&foo))(1,2,3,4); // adds two dummy parameters at the back and calls foo(1,2)
+ * sigc::hide(sigc::hide(&foo))(1,2,3,4); // adds two dummy parameters at the back and calls
+ foo(1,2)
  * @endcode
 
  * sigc::hide_return() alters an arbitrary functor by
@@ -53,7 +56,6 @@ namespace sigc {
  * @ingroup adaptors
  */
 
-
 /** Adaptor that adds a dummy parameter to the wrapped functor.
  * Use the convenience function sigc::hide() to create an instance of sigc::hide_functor.
  *
@@ -75,48 +77,42 @@ struct hide_functor : public adapts<T_functor>
    * @return The return value of the functor invocation.
    */
   template <class... T_arg>
-  decltype(auto)
-  operator()(T_arg&&... _A_a)
-    {
-       constexpr auto size = sizeof...(T_arg);
-       constexpr auto index_ignore = (I_location == -1 ? size - 1 : I_location);
-       const auto t = std::tuple<T_arg...>(std::forward<T_arg>(_A_a)...);
+  decltype(auto) operator()(T_arg&&... _A_a)
+  {
+    constexpr auto size = sizeof...(T_arg);
+    constexpr auto index_ignore = (I_location == -1 ? size - 1 : I_location);
+    const auto t = std::tuple<T_arg...>(std::forward<T_arg>(_A_a)...);
 
-       const auto t_start = internal::tuple_start<index_ignore>(t);
-       const auto t_end = internal::tuple_end<size - index_ignore - 1>(t);
-       const auto t_used = std::tuple_cat(t_start, t_end);
+    const auto t_start = internal::tuple_start<index_ignore>(t);
+    const auto t_end = internal::tuple_end<size - index_ignore - 1>(t);
+    const auto t_used = std::tuple_cat(t_start, t_end);
 
-       constexpr auto size_used = size - 1;
+    constexpr auto size_used = size - 1;
 
-       //TODO: Remove these? They are just here as a sanity check.
-       static_assert(std::tuple_size<decltype(t_used)>::value == size_used, "Unexpected t_used size.");
+    // TODO: Remove these? They are just here as a sanity check.
+    static_assert(std::tuple_size<decltype(t_used)>::value == size_used, "Unexpected t_used size.");
 
-       const auto seq = std::make_index_sequence<size_used>();
-       return call_functor_operator_parentheses(t_used, seq);
-    }
+    const auto seq = std::make_index_sequence<size_used>();
+    return call_functor_operator_parentheses(t_used, seq);
+  }
 
   /** Constructs a hide_functor object that adds a dummy parameter to the passed functor.
    * @param _A_func Functor to invoke from operator()().
    */
-  explicit hide_functor(const T_functor& _A_func)
-    : adapts<T_functor>(_A_func)
-    {}
+  explicit hide_functor(const T_functor& _A_func) : adapts<T_functor>(_A_func) {}
 
 private:
-  //TODO_variadic: Replace this with std::experimental::apply() if that becomes standard
-  //C++, or add our own implementation, to avoid code duplication.
-  template<class T_tuple, std::size_t... Is>
-  decltype(auto)
-  call_functor_operator_parentheses(T_tuple& tuple,
-    std::index_sequence<Is...>)
+  // TODO_variadic: Replace this with std::experimental::apply() if that becomes standard
+  // C++, or add our own implementation, to avoid code duplication.
+  template <class T_tuple, std::size_t... Is>
+  decltype(auto) call_functor_operator_parentheses(T_tuple& tuple, std::index_sequence<Is...>)
   {
     return this->functor_.template operator()(std::get<Is>(tuple)...);
   }
 };
 
-
 #ifndef DOXYGEN_SHOULD_SKIP_THIS
-//template specialization of visitor<>::do_visit_each<>(action, functor):
+// template specialization of visitor<>::do_visit_each<>(action, functor):
 /** Performs a functor on each of the targets of a functor.
  * The function overload for sigc::hide_functor performs a functor on the
  * functor stored in the sigc::hide_functor object.
@@ -124,18 +120,19 @@ private:
  * @ingroup hide
  */
 template <int I_location, class T_functor>
-struct visitor<hide_functor<I_location, T_functor> >
+struct visitor<hide_functor<I_location, T_functor>>
 {
   template <typename T_action>
-  static void do_visit_each(const T_action& _A_action,
-                            const hide_functor<I_location, T_functor>& _A_target)
+  static void do_visit_each(
+    const T_action& _A_action, const hide_functor<I_location, T_functor>& _A_target)
   {
     sigc::visit_each(_A_action, _A_target.functor_);
   }
 };
 #endif // DOXYGEN_SHOULD_SKIP_THIS
 
-/** Creates an adaptor of type sigc::hide_functor which adds a dummy parameter to the passed functor.
+/** Creates an adaptor of type sigc::hide_functor which adds a dummy parameter to the passed
+ * functor.
  * The optional template argument @e I_location specifies the zero-based
  * position of the dummy parameter in the returned functor (@p -1 stands for the last parameter).
  *
@@ -147,9 +144,12 @@ struct visitor<hide_functor<I_location, T_functor> >
 template <int I_location, class T_functor>
 inline decltype(auto)
 hide(const T_functor& _A_func)
-  { return hide_functor<I_location, T_functor>(_A_func); }
+{
+  return hide_functor<I_location, T_functor>(_A_func);
+}
 
-/** Creates an adaptor of type sigc::hide_functor which adds a dummy parameter to the passed functor.
+/** Creates an adaptor of type sigc::hide_functor which adds a dummy parameter to the passed
+ * functor.
  * This overload adds a dummy parameter at the back of the functor's parameter list.
  *
  * @param _A_func Functor that should be wrapped.
@@ -160,7 +160,9 @@ hide(const T_functor& _A_func)
 template <class T_functor>
 inline decltype(auto)
 hide(const T_functor& _A_func)
-  { return hide_functor<-1, T_functor> (_A_func); }
+{
+  return hide_functor<-1, T_functor>(_A_func);
+}
 
 } /* namespace sigc */
 
index ba7a8b3..92c381e 100644 (file)
@@ -6,7 +6,8 @@
 #include <sigc++/functors/mem_fun.h>
 #include <sigc++/functors/slot.h>
 
-namespace sigc {
+namespace sigc
+{
 
 /** @defgroup retype retype(), retype_return()
  * sigc::retype() alters a sigc::pointer_functor, a sigc::mem_functor or a sigc::slot
@@ -58,29 +59,29 @@ namespace sigc {
  * @ingroup retype
  */
 template <class T_functor, class... T_type>
-struct retype_functor
-  : public adapts<T_functor>
+struct retype_functor : public adapts<T_functor>
 {
   using adaptor_type = typename adapts<T_functor>::adaptor_type;
   using result_type = typename adapts<T_functor>::result_type;
 
   template <class... T_arg>
-  decltype(auto)
-  operator()(T_arg... _A_a)
-    { return this->functor_.template operator()<type_trait_take_t<T_type>...>
-        (static_cast<T_type>(_A_a)...);
-    }
+  decltype(auto) operator()(T_arg... _A_a)
+  {
+    return this->functor_.template operator()<type_trait_take_t<T_type>...>(
+      static_cast<T_type>(_A_a)...);
+  }
 
-  /** Constructs a retype_functor object that performs C-style casts on the parameters passed on to the functor.
+  /** Constructs a retype_functor object that performs C-style casts on the parameters passed on to
+   * the functor.
    * @param _A_functor Functor to invoke from operator()().
    */
-  explicit retype_functor(type_trait_take_t<T_functor> _A_functor)
-    : adapts<T_functor>(_A_functor)
-    {}
+  explicit retype_functor(type_trait_take_t<T_functor> _A_functor) : adapts<T_functor>(_A_functor)
+  {
+  }
 };
 
 #ifndef DOXYGEN_SHOULD_SKIP_THIS
-//template specialization of visitor<>::do_visit_each<>(action, functor):
+// template specialization of visitor<>::do_visit_each<>(action, functor):
 /** Performs a functor on each of the targets of a functor.
  * The function overload for sigc::retype_functor performs a functor on the
  * functor stored in the sigc::retype_functor object.
@@ -88,44 +89,48 @@ struct retype_functor
  * @ingroup retype
  */
 template <class T_functor, class... T_type>
-struct visitor<retype_functor<T_functor, T_type...> >
+struct visitor<retype_functor<T_functor, T_type...>>
 {
   template <typename T_action>
-  static void do_visit_each(const T_action& _A_action,
-                            const retype_functor<T_functor, T_type...>& _A_target)
+  static void do_visit_each(
+    const T_action& _A_action, const retype_functor<T_functor, T_type...>& _A_target)
   {
     sigc::visit_each(_A_action, _A_target.functor_);
   }
 };
 #endif // DOXYGEN_SHOULD_SKIP_THIS
 
-//This one takes, for instance, a mem_functor or bound_mem_functor:
-/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor.
+// This one takes, for instance, a mem_functor or bound_mem_functor:
+/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters
+ * passed on to the functor.
  *
  * @param _A_functor Functor that should be wrapped.
  * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on.
  *
  * @ingroup retype
  */
-template <template<class T_func, class... T_arg> class T_functor, class T_func, class... T_arg>
+template <template <class T_func, class... T_arg> class T_functor, class T_func, class... T_arg>
 inline decltype(auto)
 retype(const T_functor<T_func, T_arg...>& _A_functor)
-{ return retype_functor<T_functor<T_func, T_arg...>, T_arg...>
-    (_A_functor); }
+{
+  return retype_functor<T_functor<T_func, T_arg...>, T_arg...>(_A_functor);
+}
 
-//This one takes, for instance, a pointer_functor or slot:
-/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters passed on to the functor.
+// This one takes, for instance, a pointer_functor or slot:
+/** Creates an adaptor of type sigc::retype_functor which performs C-style casts on the parameters
+ * passed on to the functor.
  *
  * @param _A_functor Functor that should be wrapped.
  * @return Adaptor that executes @e _A_functor performing C-style casts on the paramters passed on.
  *
  * @ingroup retype
  */
-template <template<class T_return, class... T_arg> class T_functor, class T_return, class... T_arg>
+template <template <class T_return, class... T_arg> class T_functor, class T_return, class... T_arg>
 inline decltype(auto)
 retype(const T_functor<T_return(T_arg...)>& _A_functor)
-{ return retype_functor<T_functor<T_return(T_arg...)>, T_arg...>
-    (_A_functor); }
+{
+  return retype_functor<T_functor<T_return(T_arg...)>, T_arg...>(_A_functor);
+}
 
 } /* namespace sigc */
 
index 0654592..a261b43 100644 (file)
@@ -2,10 +2,12 @@
 #define _SIGC_ADAPTORS_RETYPE_RETURN_H_
 #include <sigc++/adaptors/adaptor_trait.h>
 
-namespace sigc {
+namespace sigc
+{
 
 /** Adaptor that performs a C-style cast on the return value of a functor.
- * Use the convenience function sigc::retype_return() to create an instance of retype_return_functor.
+ * Use the convenience function sigc::retype_return() to create an instance of
+ * retype_return_functor.
  *
  * The following template arguments are used:
  * - @e T_return Target type of the C-style cast.
@@ -20,31 +22,36 @@ struct retype_return_functor : public adapts<T_functor>
 
   T_return operator()();
 
-
   template <class... T_arg>
   inline T_return operator()(T_arg&&... _A_a)
-    { return T_return(this->functor_.template operator()<T_arg...>
-        (std::forward<T_arg>(_A_a)...));
-    }
+  {
+    return T_return(this->functor_.template operator() < T_arg... > (std::forward<T_arg>(_A_a)...));
+  }
 
-  retype_return_functor() {}
+  retype_return_functor() = default;
 
-  /** Constructs a retype_return_functor object that perform a C-style cast on the return value of the passed functor.
+  /** Constructs a retype_return_functor object that perform a C-style cast on the return value of
+   * the passed functor.
    * @param _A_functor Functor to invoke from operator()().
    */
   explicit retype_return_functor(type_trait_take_t<T_functor> _A_functor)
-    : adapts<T_functor>(_A_functor)
-    {}
+  : adapts<T_functor>(_A_functor)
+  {
+  }
 };
 
 template <class T_return, class T_functor>
-T_return retype_return_functor<T_return, T_functor>::operator()()
-  { return T_return(this->functor_()); }
-
+T_return
+retype_return_functor<T_return, T_functor>::operator()()
+{
+  return T_return(this->functor_());
+}
 
 /** Adaptor that performs a C-style cast on the return value of a functor.
- * This template specialization is for a void return. It drops the return value of the functor it invokes.
- * Use the convenience function sigc::hide_return() to create an instance of sigc::retype_return_functor<void>.
+ * This template specialization is for a void return. It drops the return value of the functor it
+ * invokes.
+ * Use the convenience function sigc::hide_return() to create an instance of
+ * sigc::retype_return_functor<void>.
  *
  * @ingroup retype
  */
@@ -57,25 +64,25 @@ struct retype_return_functor<void, T_functor> : public adapts<T_functor>
 
   void operator()();
 
-
   template <class... T_arg>
   inline void operator()(T_arg... _A_a)
-    { this->functor_.template operator()<T_arg...>
-        (_A_a...);
-    }
-
-  retype_return_functor() {}
-  retype_return_functor(type_trait_take_t<T_functor> _A_functor)
-    : adapts<T_functor>(_A_functor)
-    {}
+  {
+    this->functor_.template operator()<T_arg...>(_A_a...);
+  }
+
+  retype_return_functor() = default;
+  retype_return_functor(type_trait_take_t<T_functor> _A_functor) : adapts<T_functor>(_A_functor) {}
 };
 
 template <class T_functor>
-void retype_return_functor<void, T_functor>::operator()()
-  { this->functor_(); }
+void
+retype_return_functor<void, T_functor>::operator()()
+{
+  this->functor_();
+}
 
 #ifndef DOXYGEN_SHOULD_SKIP_THIS
-//template specialization of visitor<>::do_visit_each<>(action, functor):
+// template specialization of visitor<>::do_visit_each<>(action, functor):
 /** Performs a functor on each of the targets of a functor.
  * The function overload for sigc::retype_return_functor performs a functor on the
  * functor stored in the sigc::retype_return_functor object.
@@ -83,18 +90,19 @@ void retype_return_functor<void, T_functor>::operator()()
  * @ingroup retype
  */
 template <class T_return, class T_functor>
-struct visitor<retype_return_functor<T_return, T_functor> >
+struct visitor<retype_return_functor<T_return, T_functor>>
 {
   template <typename T_action>
-  static void do_visit_each(const T_action& _A_action,
-                            const retype_return_functor<T_return, T_functor>& _A_target)
+  static void do_visit_each(
+    const T_action& _A_action, const retype_return_functor<T_return, T_functor>& _A_target)
   {
     sigc::visit_each(_A_action, _A_target.functor_);
   }
 };
 #endif // DOXYGEN_SHOULD_SKIP_THIS
 
-/** Creates an adaptor of type sigc::retype_return_functor which performs a C-style cast on the return value of the passed functor.
+/** Creates an adaptor of type sigc::retype_return_functor which performs a C-style cast on the
+ * return value of the passed functor.
  * The template argument @e T_return specifies the target type of the cast.
  *
  * @param _A_functor Functor that should be wrapped.
@@ -105,9 +113,12 @@ struct visitor<retype_return_functor<T_return, T_functor> >
 template <class T_return, class T_functor>
 inline retype_return_functor<T_return, T_functor>
 retype_return(const T_functor& _A_functor)
-  { return retype_return_functor<T_return, T_functor>(_A_functor); }
+{
+  return retype_return_functor<T_return, T_functor>(_A_functor);
+}
 
-/** Creates an adaptor of type sigc::retype_return_functor which drops the return value of the passed functor.
+/** Creates an adaptor of type sigc::retype_return_functor which drops the return value of the
+ * passed functor.
  *
  * @param _A_functor Functor that should be wrapped.
  * @return Adaptor that executes @e _A_functor dropping its return value.
@@ -117,7 +128,9 @@ retype_return(const T_functor& _A_functor)
 template <class T_functor>
 inline retype_return_functor<void, T_functor>
 hide_return(const T_functor& _A_functor)
-  { return retype_return_functor<void, T_functor>(_A_functor); }
+{
+  return retype_return_functor<void, T_functor>(_A_functor);
+}
 
 } /* namespace sigc */
 #endif /* _SIGC_ADAPTORS_RETYPE_RETURN_H_ */
index 69a5c9b..5fad4cf 100644 (file)
@@ -5,7 +5,8 @@
 #include <sigc++/limit_reference.h>
 #include <sigc++/tuple-utils/tuple_for_each.h>
 
-namespace sigc {
+namespace sigc
+{
 
 /** @defgroup track_obj track_obj()
  * sigc::track_obj() tracks trackable objects, referenced from a functor.
@@ -59,38 +60,36 @@ public:
    * @param _A_obj Trackable objects.
    */
   track_obj_functor(const T_functor& _A_func, const T_obj&... _A_obj)
-  : adapts<T_functor>(_A_func), obj_(_A_obj...) {}
+  : adapts<T_functor>(_A_func), obj_(_A_obj...)
+  {
+  }
 
   /** Invokes the wrapped functor.
    * @return The return value of the functor invocation.
    */
-  decltype(auto) operator()()
-  { return this->functor_(); }
-
+  decltype(auto) operator()() { return this->functor_(); }
 
   /** Invokes the wrapped functor passing on the arguments.
    * @param _A_arg... Arguments to be passed on to the functor.
    * @return The return value of the functor invocation.
    */
   template <typename... T_arg>
-  decltype(auto)
-  operator()(T_arg&&... _A_arg)
+  decltype(auto) operator()(T_arg&&... _A_arg)
   {
-    return this->functor_.template operator()<type_trait_pass_t<T_arg>...>
-      (std::forward<T_arg>(_A_arg)...);
+    return this->functor_.template operator()<type_trait_pass_t<T_arg>...>(
+      std::forward<T_arg>(_A_arg)...);
   }
 
 #ifndef DOXYGEN_SHOULD_SKIP_THIS
-//protected:
+  // protected:
   // public, so that visit_each() can access it.
   std::tuple<limit_reference<const T_obj>...> obj_;
 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
 
 }; // end class track_obj_functor
 
-
 #ifndef DOXYGEN_SHOULD_SKIP_THIS
-//template specialization of visitor<>::do_visit_each<>(action, functor):
+// template specialization of visitor<>::do_visit_each<>(action, functor):
 /** Performs a functor on each of the targets of a functor.
  * The function overload for sigc::track_obj_functor performs a functor
  * on the functor and on the trackable object instances stored in the
@@ -104,32 +103,29 @@ template <typename T_functor, typename... T_obj>
 struct visitor<track_obj_functor<T_functor, T_obj...>>
 {
   template <typename T_action>
-  static void do_visit_each(const T_action& _A_action,
-                            const track_obj_functor<T_functor, T_obj...>& _A_target)
+  static void do_visit_each(
+    const T_action& _A_action, const track_obj_functor<T_functor, T_obj...>& _A_target)
   {
     sigc::visit_each(_A_action, _A_target.functor_);
 
-    //Call sigc::visit_each(_A_action, element) on each element in the 
+    // Call sigc::visit_each(_A_action, element) on each element in the
     //_A_target.obj_ tuple:
     sigc::internal::tuple_for_each<TrackObjVisitForEach>(_A_target.obj_, _A_action);
   }
 
 private:
-  template<typename T_element>
+  template <typename T_element>
   struct TrackObjVisitForEach
   {
-    template<typename T_action>
-    static
-    void
-    visit(const T_element& element, const T_action& action)
+    template <typename T_action>
+    static void visit(const T_element& element, T_action&& action)
     {
-       sigc::visit_each(action, element);
+      sigc::visit_each(std::forward<T_action>(action), element);
     }
   };
 };
 #endif // DOXYGEN_SHOULD_SKIP_THIS
 
-
 /** Creates an adaptor of type sigc::track_obj_functor which wraps a functor.
  * @param _A_func Functor that shall be wrapped.
  * @param _A_obj Trackable objects.
@@ -143,11 +139,9 @@ template <typename T_functor, typename... T_obj>
 inline decltype(auto)
 track_obj(const T_functor& _A_func, const T_obj&... _A_obj)
 {
-  return track_obj_functor<T_functor, T_obj...>
-    (_A_func, _A_obj...);
+  return track_obj_functor<T_functor, T_obj...>(_A_func, _A_obj...);
 }
 
-
 } /* namespace sigc */
 
 #endif /* _SIGC_ADAPTORS_TRACK_OBJ_H_ */
index fa90c45..97873da 100644 (file)
@@ -21,5 +21,4 @@
 
 #include <sigc++/adaptors/bind_return.h>
 
-
 #endif /* _SIGC_BIND_RETURN_HPP_ */
index 228952b..6772276 100644 (file)
 
 #include <sigc++/connection.h>
 
-namespace sigc {
+namespace sigc
+{
 
-connection::connection() noexcept
-: slot_(nullptr)
-{}
+connection::connection() noexcept : slot_(nullptr)
+{
+}
 
-connection::connection(const connection& c)
-: slot_(c.slot_)
+connection::connection(const connection& c) : slot_(c.slot_)
 {
-  //Let the connection forget about the signal handler when the handler object dies:
+  // Let the connection forget about the signal handler when the handler object dies:
   if (slot_)
     slot_->add_destroy_notify_callback(this, &notify);
 }
 
-connection::connection(slot_base& sl)
-: slot_(&sl)
+connection::connection(slot_base& sl) : slot_(&sl)
 {
-  //Let the connection forget about the signal handler when the handler object dies:
+  // Let the connection forget about the signal handler when the handler object dies:
   slot_->add_destroy_notify_callback(this, &notify);
 }
 
-connection& connection::operator=(const connection& c)
+connection&
+connection::operator=(const connection& c)
 {
   set_slot(c.slot_);
   return *this;
@@ -52,43 +52,50 @@ connection::~connection()
     slot_->remove_destroy_notify_callback(this);
 }
 
-bool connection::empty() const noexcept
+bool
+connection::empty() const noexcept
 {
   return (!slot_ || slot_->empty());
 }
 
-bool connection::connected() const noexcept
+bool
+connection::connected() const noexcept
 {
   return !empty();
 }
 
-bool connection::blocked() const noexcept
+bool
+connection::blocked() const noexcept
 {
   return (slot_ ? slot_->blocked() : false);
 }
 
-bool connection::block(bool should_block) noexcept
+bool
+connection::block(bool should_block) noexcept
 {
   return (slot_ ? slot_->block(should_block) : false);
 }
 
-bool connection::unblock() noexcept
+bool
+connection::unblock() noexcept
 {
   return (slot_ ? slot_->unblock() : false);
 }
 
-void connection::disconnect()
+void
+connection::disconnect()
 {
   if (slot_)
     slot_->disconnect(); // This notifies slot_'s parent.
-} 
+}
 
 connection::operator bool() const noexcept
 {
   return !empty();
 }
-    
-void connection::set_slot(slot_base* sl)
+
+void
+connection::set_slot(slot_base* sl)
 {
   if (slot_)
     slot_->remove_destroy_notify_callback(this);
@@ -99,7 +106,8 @@ void connection::set_slot(slot_base* sl)
     slot_->add_destroy_notify_callback(this, &notify);
 }
 
-void connection::notify(notifiable* data)
+void
+connection::notify(notifiable* data)
 {
   auto self = reinterpret_cast<connection*>(data);
   self->slot_ = nullptr;
index 87202de..058d0d5 100644 (file)
@@ -21,7 +21,8 @@
 #include <sigc++config.h>
 #include <sigc++/signal.h>
 
-namespace sigc {
+namespace sigc
+{
 
 /** Convinience class for safe disconnection.
  * Iterators must not be used beyond the lifetime of the list
@@ -52,7 +53,10 @@ struct SIGC_API connection : public notifiable
    */
   template <typename T_slot>
   connection(const slot_iterator<T_slot>& it) : slot_(&(*it))
-    { if (slot_) slot_->add_destroy_notify_callback(this, &notify); }
+  {
+    if (slot_)
+      slot_->add_destroy_notify_callback(this, &notify);
+  }
 
   /** Constructs a connection object from a slot object.
    * This is only useful if you create your own slot list.
@@ -70,7 +74,10 @@ struct SIGC_API connection : public notifiable
    */
   template <typename T_slot>
   connection& operator=(const slot_iterator<T_slot>& it)
-    { set_slot(&(*it)); return *this; }
+  {
+    set_slot(&(*it));
+    return *this;
+  }
 
   ~connection();
 
@@ -125,5 +132,4 @@ private:
 
 } /* namespace sigc */
 
-
 #endif /* _SIGC_TRACKABLE_HPP_ */
index 0c5c0b8..6450b41 100644 (file)
@@ -1,15 +1,17 @@
 #ifndef _SIGC_FUNCTORS_FUNCTOR_BASE_H_
 #define _SIGC_FUNCTORS_FUNCTOR_BASE_H_
 
-namespace sigc {
+namespace sigc
+{
 
 /** A hint to the compiler.
  * All functors which define @p result_type should publically inherit from this hint.
  *
  * @ingroup sigcfunctors
  */
-struct functor_base {};
-
+struct functor_base
+{
+};
 
 } /* namespace sigc */
 #endif /* _SIGC_FUNCTORS_FUNCTOR_BASE_H_ */
index 9ac2977..a0df4c0 100644 (file)
@@ -6,7 +6,8 @@
 #include <sigc++/type_traits.h>
 #include <type_traits>
 
-namespace sigc {
+namespace sigc
+{
 
 /** @defgroup sigcfunctors Functors
  * Functors are copyable types that define operator()().
@@ -44,7 +45,7 @@ namespace sigc {
  *
  * If all these ways to deduce the result type fail, void is assumed.
  *
- * With libsigc++ versions before 2.6, the macro 
+ * With libsigc++ versions before 2.6, the macro
  * #SIGC_FUNCTORS_DEDUCE_RESULT_TYPE_WITH_DECLTYPE activated the test with
  * decltype(). That macro is now unneccesary and deprecated.
  */
@@ -80,7 +81,6 @@ public:
     ;
 };
 
-
 /** Trait that specifies the return type of any type.
  * Template specializations for functors derived from sigc::functor_base,
  * for other functors whose result type can be deduced with decltype(),
@@ -94,8 +94,8 @@ public:
  * @ingroup sigcfunctors
  */
 template <class T_functor,
-          bool I_derives_functor_base = std::is_base_of<functor_base,T_functor>::value,
-          bool I_can_use_decltype = can_deduce_result_type_with_decltype<T_functor>::value>
+  bool I_derives_functor_base = std::is_base_of<functor_base, T_functor>::value,
+  bool I_can_use_decltype = can_deduce_result_type_with_decltype<T_functor>::value>
 struct functor_trait
 {
   using result_type = void;
@@ -113,7 +113,8 @@ struct functor_trait<T_functor, true, I_can_use_decltype>
 template <typename T_functor>
 struct functor_trait<T_functor, false, true>
 {
-  using result_type = typename functor_trait<decltype(&T_functor::operator()), false, false>::result_type;
+  using result_type =
+    typename functor_trait<decltype(&T_functor::operator()), false, false>::result_type;
   using functor_type = T_functor;
 };
 #endif // DOXYGEN_SHOULD_SKIP_THIS
@@ -128,13 +129,13 @@ struct functor_trait<T_functor, false, true>
  *
  * @ingroup sigcfunctors
  */
-#define SIGC_FUNCTORS_HAVE_RESULT_TYPE                 \
-template <class T_functor>                             \
-struct functor_trait<T_functor, false, false>          \
-{                                                      \
-  using result_type = typename T_functor::result_type; \
-  using functor_type = T_functor;                      \
-};
+#define SIGC_FUNCTORS_HAVE_RESULT_TYPE                   \
+  template <class T_functor>                             \
+  struct functor_trait<T_functor, false, false>          \
+  {                                                      \
+    using result_type = typename T_functor::result_type; \
+    using functor_type = T_functor;                      \
+  };
 
 /** Helper macro, if you want to mix user-defined and third party functors with libsigc++.
  *
@@ -151,48 +152,24 @@ struct functor_trait<T_functor, false, false>          \
  *
  * @ingroup sigcfunctors
  */
-#define SIGC_FUNCTOR_TRAIT(T_functor,T_return) \
-template <>                                    \
-struct functor_trait<T_functor, false, false>  \
-{                                              \
-  using result_type = T_return;                \
-  using functor_type = T_functor;              \
-};                                             \
-template <>                                    \
-struct functor_trait<T_functor, false, true>   \
-{                                              \
-  using result_type = T_return;                \
-  using functor_type = T_functor;              \
-};
-
-#ifndef SIGCXX_DISABLE_DEPRECATED
-/** Helper macro, if you want to mix user-defined and third party functors with libsigc++.
- *
- * If you want to mix functors not derived from sigc::functor_base with libsigc++,
- * and your compiler can deduce the result type of the functor with the C++11
- * keyword <tt>decltype</tt>, use this macro inside namespace sigc like so:
- * @code
- * namespace sigc {
- *   SIGC_FUNCTORS_DEDUCE_RESULT_TYPE_WITH_DECLTYPE
- * }
- * @endcode
- *
- * Functors with overloaded operator()() are not supported.
- *
- * @newin{2,2,11}
- *
- * @deprecated This macro does nothing. The test it activated in libsigc++
- *             versions before 2.6, is now unconditionally activated.
- *
- * @ingroup sigcfunctors
- */
-#define SIGC_FUNCTORS_DEDUCE_RESULT_TYPE_WITH_DECLTYPE // Empty
-#endif // SIGCXX_DISABLE_DEPRECATED
+#define SIGC_FUNCTOR_TRAIT(T_functor, T_return) \
+  template <>                                   \
+  struct functor_trait<T_functor, false, false> \
+  {                                             \
+    using result_type = T_return;               \
+    using functor_type = T_functor;             \
+  };                                            \
+  template <>                                   \
+  struct functor_trait<T_functor, false, true>  \
+  {                                             \
+    using result_type = T_return;               \
+    using functor_type = T_functor;             \
+  };
 
 #ifndef DOXYGEN_SHOULD_SKIP_THIS
 // detect the return type and the functor version of non-functor types.
 
-//functor ptr fun:
+// functor ptr fun:
 
 template <class T_return, class... T_arg>
 struct functor_trait<T_return (*)(T_arg...), false, false>
@@ -201,25 +178,20 @@ struct functor_trait<T_return (*)(T_arg...), false, false>
   using functor_type = pointer_functor<T_return(T_arg...)>;
 };
 
-
-//functor mem fun:
+// functor mem fun:
 
 template <class T_return, class T_obj, class... T_arg>
 struct functor_trait<T_return (T_obj::*)(T_arg...), false, false>
 {
   using result_type = T_return;
-  using functor_type = mem_functor<
-    T_return (T_obj::*)(T_arg...),
-    T_arg...>;
+  using functor_type = mem_functor<T_return (T_obj::*)(T_arg...), T_arg...>;
 };
 
 template <class T_return, class T_obj, class... T_arg>
 struct functor_trait<T_return (T_obj::*)(T_arg...) const, false, false>
 {
   using result_type = T_return;
-  using functor_type = mem_functor<
-    T_return (T_obj::*)(T_arg...) const,
-    T_arg...>;
+  using functor_type = mem_functor<T_return (T_obj::*)(T_arg...) const, T_arg...>;
 };
 
 #endif // DOXYGEN_SHOULD_SKIP_THIS
index 5caac6b..3f3ef1f 100644 (file)
@@ -9,16 +9,19 @@
 //    an extra copy and complicate the header include order if bind is
 //    to have automatic conversion for member pointers.
 
-namespace sigc {
+namespace sigc
+{
 
 /** @defgroup mem_fun mem_fun()
- * mem_fun() is used to convert a pointer to a method to a functor.
+ * mem_fun() Creates a functor from a pointer to a method.
  *
  * Optionally, a reference or pointer to an object can be bound to the functor.
  *
- * @note Only if the object type inherits from sigc::trackable, and the
- * functor returned from mem_fun() is assigned to a sigc::slot, is the functor
- * automatically cleared when the object goes out of scope!
+ * @note If the object type inherits from sigc::trackable, and the
+ * functor returned from mem_fun() is assigned to a sigc::slot, the functor
+ * will be automatically cleared when the object goes out of scope. Invoking
+ * that slot will then have no effect and will not try to use the destroyed
+ * instance.
  *
  * If the member function pointer is to an overloaded type, you must specify
  * the types using template arguments starting with the first argument.
@@ -74,8 +77,9 @@ public:
   using function_type = T_func;
   using result_type = typename internal::member_method_result<T_func>::type;
 
-  using obj_type_with_modifier = typename std::conditional_t<
-    internal::member_method_is_const<T_func>::value, const object_type, object_type>;
+  using obj_type_with_modifier =
+    typename std::conditional_t<internal::member_method_is_const<T_func>::value, const object_type,
+      object_type>;
 
   /// Constructs an invalid functor.
   mem_functor() : func_ptr_(nullptr) {}
@@ -90,31 +94,31 @@ public:
    * @param _A_a... Argument to be passed on to the method.
    * @return The return value of the method invocation.
    */
-  decltype(auto)
-  operator()(obj_type_with_modifier& _A_obj, type_trait_take_t<T_arg>... _A_a) const
-    { return (_A_obj.*func_ptr_)(_A_a...); }
+  decltype(auto) operator()(obj_type_with_modifier& _A_obj, type_trait_take_t<T_arg>... _A_a) const
+  {
+    return (_A_obj.*func_ptr_)(_A_a...);
+  }
 
 protected:
   function_type func_ptr_;
 };
 
-
-template <class T_func,
-  class... T_arg>
-class bound_mem_functor
-: mem_functor<T_func, T_arg...>
+template <class T_func, class... T_arg>
+class bound_mem_functor : mem_functor<T_func, T_arg...>
 {
   using base_type = mem_functor<T_func, T_arg...>;
+
 public:
   using function_type = typename base_type::function_type;
   using result_type = typename base_type::result_type;
 
   using object_type = typename base_type::object_type;
 
-  using obj_type_with_modifier = typename std::conditional_t<
-    internal::member_method_is_const<T_func>::value, const object_type, object_type>;
-  using T_limit_reference = typename std::conditional_t<
-    internal::member_method_is_const<T_func>::value,
+  using obj_type_with_modifier =
+    typename std::conditional_t<internal::member_method_is_const<T_func>::value, const object_type,
+      object_type>;
+  using T_limit_reference =
+    typename std::conditional_t<internal::member_method_is_const<T_func>::value,
       limit_reference<const object_type>, limit_reference<object_type>>;
 
   /** Constructs a bound_mem_functor object that wraps the passed method.
@@ -122,27 +126,27 @@ public:
    * @param _A_func Pointer to method will be invoked from operator()().
    */
   bound_mem_functor(obj_type_with_modifier& _A_obj, function_type _A_func)
-    : base_type(_A_func),
-      obj_(_A_obj)
-    {}
+  : base_type(_A_func), obj_(_A_obj)
+  {
+  }
 
   /** Execute the wrapped method operating on the stored instance.
    * @param _A_a... Argument to be passed on to the method.
    * @return The return value of the method invocation.
    */
-  decltype(auto)
-  operator()(type_trait_take_t<T_arg>... _A_a) const
-    { return (obj_.invoke().*(this->func_ptr_))(_A_a...); }
+  decltype(auto) operator()(type_trait_take_t<T_arg>... _A_a) const
+  {
+    return (obj_.invoke().*(this->func_ptr_))(_A_a...);
+  }
 
-//protected:
+  // protected:
   // Reference to stored object instance.
   // This is the handler object, such as TheObject in void TheObject::signal_handler().
   T_limit_reference obj_;
 };
 
-
 #ifndef DOXYGEN_SHOULD_SKIP_THIS
-//template specialization of visitor<>::do_visit_each<>(action, functor):
+// template specialization of visitor<>::do_visit_each<>(action, functor):
 /** Performs a functor on each of the targets of a functor.
  * The function overload for sigc::bound_$1mem_functor performs a functor
  * on the object instance stored in the sigc::bound_$1mem_functor object.
@@ -150,18 +154,17 @@ public:
  * @ingroup mem_fun
  */
 template <class T_func, class... T_arg>
-struct visitor<bound_mem_functor<T_func, T_arg...> >
+struct visitor<bound_mem_functor<T_func, T_arg...>>
 {
   template <class T_action>
-  static void do_visit_each(const T_action& _A_action,
-                            const bound_mem_functor<T_func, T_arg...>& _A_target)
+  static void do_visit_each(
+    const T_action& _A_action, const bound_mem_functor<T_func, T_arg...>& _A_target)
   {
     sigc::visit_each(_A_action, _A_target.obj_);
   }
 };
 #endif // DOXYGEN_SHOULD_SKIP_THIS
 
-
 /** Creates a functor of type sigc::mem_functor which wraps a  method.
  * @param _A_func Pointer to method that should be wrapped.
  * @return Functor that executes _A_func on invokation.
@@ -170,11 +173,10 @@ struct visitor<bound_mem_functor<T_func, T_arg...> >
  */
 template <class T_return, class T_obj, class... T_arg>
 inline decltype(auto)
-mem_fun(T_return (T_obj::*_A_func)(T_arg...) )
-{ return mem_functor<
-    T_return (T_obj::*)(T_arg...) ,
-    T_arg...>(_A_func); }
-
+mem_fun(T_return (T_obj::*_A_func)(T_arg...))
+{
+  return mem_functor<T_return (T_obj::*)(T_arg...), T_arg...>(_A_func);
+}
 
 /** Creates a functor of type sigc::const_mem_functor which wraps a const method.
  * @param _A_func Pointer to method that should be wrapped.
@@ -185,10 +187,9 @@ mem_fun(T_return (T_obj::*_A_func)(T_arg...) )
 template <class T_return, class T_obj, class... T_arg>
 inline decltype(auto)
 mem_fun(T_return (T_obj::*_A_func)(T_arg...) const)
-{ return mem_functor<
-    T_return (T_obj::*)(T_arg...) const,
-    T_arg...>(_A_func); }
-
+{
+  return mem_functor<T_return (T_obj::*)(T_arg...) const, T_arg...>(_A_func);
+}
 
 /** Creates a functor of type sigc::volatile_mem_functor which wraps a volatile method.
  * @param _A_func Pointer to method that should be wrapped.
@@ -199,10 +200,9 @@ mem_fun(T_return (T_obj::*_A_func)(T_arg...) const)
 template <class T_return, class T_obj, class... T_arg>
 inline decltype(auto)
 mem_fun(T_return (T_obj::*_A_func)(T_arg...) volatile)
-{ return mem_functor<
-    T_return (T_obj::*)(T_arg...) volatile,
-    T_arg...>(_A_func); }
-
+{
+  return mem_functor<T_return (T_obj::*)(T_arg...) volatile, T_arg...>(_A_func);
+}
 
 /** Creates a functor of type sigc::const_volatile_mem_functor which wraps a const volatile method.
  * @param _A_func Pointer to method that should be wrapped.
@@ -213,12 +213,12 @@ mem_fun(T_return (T_obj::*_A_func)(T_arg...) volatile)
 template <class T_return, class T_obj, class... T_arg>
 inline decltype(auto)
 mem_fun(T_return (T_obj::*_A_func)(T_arg...) const volatile)
-{ return mem_functor<
-    T_return (T_obj::*)(T_arg...) const volatile,
-    T_arg...>(_A_func); }
-
+{
+  return mem_functor<T_return (T_obj::*)(T_arg...) const volatile, T_arg...>(_A_func);
+}
 
-/** Creates a functor of type sigc::bound_mem_functor which encapsulates a method and an object instance.
+/** Creates a functor of type sigc::bound_mem_functor which encapsulates a method and an object
+ * instance.
  * @param _A_obj Reference to object instance the functor should operate on.
  * @param _A_func Pointer to method that should be wrapped.
  * @return Functor that executes @e _A_func on invokation.
@@ -227,14 +227,13 @@ mem_fun(T_return (T_obj::*_A_func)(T_arg...) const volatile)
  */
 template <class T_return, class T_obj, class T_obj2, class... T_arg>
 inline decltype(auto)
-mem_fun(/**/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg...) )
+mem_fun(/**/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg...))
 {
-  return bound_mem_functor<
-    T_return (T_obj::*)(T_arg...) ,
-    T_arg...>(_A_obj, _A_func);
+  return bound_mem_functor<T_return (T_obj::*)(T_arg...), T_arg...>(_A_obj, _A_func);
 }
 
-/** Creates a functor of type sigc::bound_const_mem_functor which encapsulates a method and an object instance.
+/** Creates a functor of type sigc::bound_const_mem_functor which encapsulates a method and an
+ * object instance.
  * @param _A_obj Reference to object instance the functor should operate on.
  * @param _A_func Pointer to method that should be wrapped.
  * @return Functor that executes @e _A_func on invokation.
@@ -245,13 +244,11 @@ template <class T_return, class T_obj, class T_obj2, class... T_arg>
 inline decltype(auto)
 mem_fun(/*const*/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg...) const)
 {
-  return bound_mem_functor<
-    T_return (T_obj::*)(T_arg...) const,
-    T_arg...>(_A_obj, _A_func);
+  return bound_mem_functor<T_return (T_obj::*)(T_arg...) const, T_arg...>(_A_obj, _A_func);
 }
 
-
-/** Creates a functor of type sigc::bound_volatile_mem_functor which encapsulates a method and an object instance.
+/** Creates a functor of type sigc::bound_volatile_mem_functor which encapsulates a method and an
+ * object instance.
  * @param _A_obj Reference to object instance the functor should operate on.
  * @param _A_func Pointer to method that should be wrapped.
  * @return Functor that executes @e _A_func on invokation.
@@ -262,13 +259,11 @@ template <class T_return, class T_obj, class T_obj2, class... T_arg>
 inline decltype(auto)
 mem_fun(/**/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg...) volatile)
 {
-  return bound_mem_functor<
-    T_return (T_obj::*)(T_arg...) volatile,
-    T_arg...>(_A_obj, _A_func);
+  return bound_mem_functor<T_return (T_obj::*)(T_arg...) volatile, T_arg...>(_A_obj, _A_func);
 }
 
-
-/** Creates a functor of type sigc::bound_const_volatile_mem_functor which encapsulates a method and an object instance.
+/** Creates a functor of type sigc::bound_const_volatile_mem_functor which encapsulates a method and
+ * an object instance.
  * @param _A_obj Reference to object instance the functor should operate on.
  * @param _A_func Pointer to method that should be wrapped.
  * @return Functor that executes @e _A_func on invokation.
@@ -279,12 +274,8 @@ template <class T_return, class T_obj, class T_obj2, class... T_arg>
 inline decltype(auto)
 mem_fun(/*const*/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg...) const volatile)
 {
-  return bound_mem_functor<
-    T_return (T_obj::*)(T_arg...) const volatile,
-    T_arg...>(_A_obj, _A_func);
+  return bound_mem_functor<T_return (T_obj::*)(T_arg...) const volatile, T_arg...>(_A_obj, _A_func);
 }
 
-
-
 } /* namespace sigc */
 #endif /* _SIGC_FUNCTORS_MEM_FUN_H_ */
index 1daa1a9..1c628bd 100644 (file)
@@ -2,10 +2,11 @@
 #define _SIGC_FUNCTORS_PTR_FUN_H_
 #include <sigc++/type_traits.h>
 
-namespace sigc {
+namespace sigc
+{
 
 /** @defgroup ptr_fun ptr_fun()
- * ptr_fun() is used to convert a pointer to a function to a functor.
+ * ptr_fun() creates a functor from a pointer to a function.
  * If the function pointer is to an overloaded type, you must specify
  * the types using template arguments starting with the first argument.
  * It is not necessary to supply the return type.
@@ -52,30 +53,30 @@ template <class T_return, class... T_args>
 class pointer_functor;
 
 template <class T_return, class... T_args>
-class pointer_functor<T_return(T_args...)>
-  : public functor_base
+class pointer_functor<T_return(T_args...)> : public functor_base
 {
   using function_type = T_return (*)(T_args...);
-protected: 
+
+protected:
   function_type func_ptr_;
+
 public:
   using result_type = T_return;
 
   /// Constructs an invalid functor.
-  pointer_functor() {}
+  pointer_functor() = default;
 
   /** Constructs a pointer_functor2 object that wraps an existing function.
    * @param _A_func Pointer to function that will be invoked from operator()().
    */
-  explicit pointer_functor(function_type _A_func): func_ptr_(_A_func) {}
+  explicit pointer_functor(function_type _A_func) : func_ptr_(_A_func) {}
 
   /** Execute the wrapped function.
    * @param _A_a1 Argument to be passed on to the function.
    * @param _A_a2 Argument to be passed on to the function.
    * @return The return value of the function invocation.
    */
-  T_return operator()(type_trait_take_t<T_args>... _A_a) const 
-    { return func_ptr_(_A_a...); }
+  T_return operator()(type_trait_take_t<T_args>... _A_a) const { return func_ptr_(_A_a...); }
 };
 
 /** Creates a functor of type sigc::pointer_functor which wraps an existing non-member function.
@@ -85,9 +86,10 @@ public:
  * @ingroup ptr_fun
  */
 template <class T_return, class... T_args>
-inline decltype(auto)
-ptr_fun(T_return (*_A_func)(T_args...))
-{ return pointer_functor<T_return(T_args...)>(_A_func); }
+inline decltype(auto) ptr_fun(T_return (*_A_func)(T_args...))
+{
+  return pointer_functor<T_return(T_args...)>(_A_func);
+}
 
 } /* namespace sigc */
 #endif /* _SIGC_FUNCTORS_PTR_FUN_H_ */
diff --git a/sigc++/functors/slot.cc b/sigc++/functors/slot.cc
deleted file mode 100644 (file)
index 5b9c92e..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-// -*- c++ -*-
-/*
- * Copyright 2002, The libsigc++ Development Team
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Lesser General Public
- *  License as published by the Free Software Foundation; either
- *  version 2.1 of the License, or (at your option) any later version.
- *
- *  This library is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- *  Lesser General Public License for more details.
- *
- *  You should have received a copy of the GNU Lesser General Public
- *  License along with this library; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-#include <sigc++/functors/slot.h>
-
-namespace sigc {
-
-
-} /* namespace sigc */
index 43176a1..91b42cd 100644 (file)
@@ -6,9 +6,11 @@
 #include <sigc++/adaptors/adaptor_trait.h>
 #include <sigc++/functors/slot_base.h>
 
-namespace sigc {
+namespace sigc
+{
 
-namespace internal {
+namespace internal
+{
 
 /** A typed slot_rep.
  * A typed slot_rep holds a functor that can be invoked from
@@ -36,12 +38,16 @@ public:
    * @param functor The functor contained by the new slot_rep object.
    */
   inline typed_slot_rep(const T_functor& functor)
-    : slot_rep(nullptr, &destroy, &dup), functor_(functor)
-    { sigc::visit_each_type<trackable*>(slot_do_bind(this), functor_); }
+  : slot_rep(nullptr, &destroy, &dup), functor_(functor)
+  {
+    sigc::visit_each_type<trackable*>(slot_do_bind(this), functor_);
+  }
 
   inline typed_slot_rep(const typed_slot_rep& cl)
-    : slot_rep(cl.call_, &destroy, &dup), functor_(cl.functor_)
-    { sigc::visit_each_type<trackable*>(slot_do_bind(this), functor_); }
+  : slot_rep(cl.call_, &destroy, &dup), functor_(cl.functor_)
+  {
+    sigc::visit_each_type<trackable*>(slot_do_bind(this), functor_);
+  }
 
   typed_slot_rep& operator=(const typed_slot_rep& src) = delete;
 
@@ -49,41 +55,37 @@ public:
   typed_slot_rep& operator=(typed_slot_rep&& src) = delete;
 
   inline ~typed_slot_rep()
-    {
-      call_ = nullptr;
-      destroy_ = nullptr;
-      sigc::visit_each_type<trackable*>(slot_do_unbind(this), functor_);
-    }
+  {
+    call_ = nullptr;
+    destroy_ = nullptr;
+    sigc::visit_each_type<trackable*>(slot_do_unbind(this), functor_);
+  }
 
 private:
   /** Detaches the stored functor from the other referred trackables and destroys it.
    * This does not destroy the base slot_rep object.
    */
   static void destroy(notifiable* data)
-    {
-      self* self_ = static_cast<self*>(reinterpret_cast<slot_rep*>(data));
-      self_->call_ = nullptr;
-      self_->destroy_ = nullptr;
-      sigc::visit_each_type<trackable*>(slot_do_unbind(self_), self_->functor_);
-      self_->functor_.~adaptor_type();
-      /* don't call disconnect() here: destroy() is either called
-       * a) from the parent itself (in which case disconnect() leads to a segfault) or
-       * b) from a parentless slot (in which case disconnect() does nothing)
-       */
-    }
+  {
+    self* self_ = static_cast<self*>(reinterpret_cast<slot_rep*>(data));
+    self_->call_ = nullptr;
+    self_->destroy_ = nullptr;
+    sigc::visit_each_type<trackable*>(slot_do_unbind(self_), self_->functor_);
+    self_->functor_.~adaptor_type();
+    /* don't call disconnect() here: destroy() is either called
+     * a) from the parent itself (in which case disconnect() leads to a segfault) or
+     * b) from a parentless slot (in which case disconnect() does nothing)
+     */
+  }
 
   /** Makes a deep copy of the slot_rep object.
    * Deep copy means that the notification callback of the new
    * slot_rep object is registered in the referred trackables.
    * @return A deep copy of the slot_rep object.
    */
-  static slot_rep* dup(slot_rep* a_rep)
-    {
-      return new self(*static_cast<self*>(a_rep));
-    }
+  static slot_rep* dup(slot_rep* a_rep) { return new self(*static_cast<self*>(a_rep)); }
 };
 
-
 /** Abstracts functor execution.
  * call_it() invokes a functor of type @e T_functor with a list of
  * parameters whose types are given by the template arguments.
@@ -95,7 +97,7 @@ private:
  * - @e T_arg Argument types used in the definition of call_it().
  *
  */
-template<class T_functor, class T_return, class... T_arg>
+template <class T_functor, class T_return, class... T_arg>
 struct slot_call
 {
   /** Invokes a functor of type @p T_functor.
@@ -104,24 +106,20 @@ struct slot_call
    * @return The return values of the functor invocation.
    */
   static T_return call_it(slot_rep* rep, type_trait_take_t<T_arg>... a_)
-    {
-      using typed_slot = typed_slot_rep<T_functor>;
-      typed_slot *typed_rep = static_cast<typed_slot*>(rep);
-      return (typed_rep->functor_).template operator()<type_trait_take_t<T_arg>...>
-               (a_...);
-    }
+  {
+    using typed_slot = typed_slot_rep<T_functor>;
+    typed_slot* typed_rep = static_cast<typed_slot*>(rep);
+    return (typed_rep->functor_).template operator()<type_trait_take_t<T_arg>...>(a_...);
+  }
 
   /** Forms a function pointer from call_it().
    * @return A function pointer formed from call_it().
    */
-  static hook address()
-    { return reinterpret_cast<hook>(&call_it); }
+  static hook address() { return reinterpret_cast<hook>(&call_it); }
 };
 
-
 } /* namespace internal */
 
-
 // Because slot is opaque, visit_each() will not visit its internal members.
 // Those members are not reachable by visit_each() after the slot has been
 // constructed. But when a slot contains another slot, the outer slot will become
@@ -155,16 +153,16 @@ template <class T_return, class... T_arg>
 class slot;
 
 template <class T_return, class... T_arg>
-class slot<T_return(T_arg...)>
-  : public slot_base
+class slot<T_return(T_arg...)> : public slot_base
 {
 public:
   using result_type = T_return;
-  //TODO: using arg_type_ = type_trait_take_t<T_arg>;
+// TODO: using arg_type_ = type_trait_take_t<T_arg>;
 
 #ifndef DOXYGEN_SHOULD_SKIP_THIS
 private:
   using rep_type = internal::slot_rep;
+
 public:
   using call_type = T_return (*)(rep_type*, type_trait_take_t<T_arg>...);
 #endif
@@ -174,49 +172,41 @@ public:
    * @return The return value of the functor invocation.
    */
   inline T_return operator()(type_trait_take_t<T_arg>... _A_a) const
-    {
-      if (!empty() && !blocked())
-        return (reinterpret_cast<call_type>(slot_base::rep_->call_))(slot_base::rep_, _A_a...);
-      return T_return();
-    }
+  {
+    if (!empty() && !blocked())
+      return (reinterpret_cast<call_type>(slot_base::rep_->call_))(slot_base::rep_, _A_a...);
+    return T_return();
+  }
 
-  inline slot() {}
+  inline slot() = default;
 
   /** Constructs a slot from an arbitrary functor.
    * @param _A_func The desired functor the new slot should be assigned to.
    */
   template <class T_functor>
-  slot(const T_functor& _A_func)
-    : slot_base(new internal::typed_slot_rep<T_functor>(_A_func))
-    {
-      //The slot_base:: is necessary to stop the HP-UX aCC compiler from being confused. murrayc.
-      slot_base::rep_->call_ = internal::slot_call<T_functor, T_return, T_arg...>::address();
-    }
+  slot(const T_functor& _A_func) : slot_base(new internal::typed_slot_rep<T_functor>(_A_func))
+  {
+    // The slot_base:: is necessary to stop the HP-UX aCC compiler from being confused. murrayc.
+    slot_base::rep_->call_ = internal::slot_call<T_functor, T_return, T_arg...>::address();
+  }
 
   /** Constructs a slot, copying an existing one.
    * @param src The existing slot to copy.
    */
-  slot(const slot& src)
-    : slot_base(src)
-    {}
+  slot(const slot& src) = default;
 
   /** Constructs a slot, moving an existing one.
    * If @p src is connected to a parent (e.g. a signal), it is copied, not moved.
    * @param src The existing slot to move or copy.
    */
-  slot(slot&& src)
-    : slot_base(std::move(src))
-    {}
+  slot(slot&& src) : slot_base(std::move(src)) {}
 
   /** Overrides this slot, making a copy from another slot.
    * @param src The slot from which to make a copy.
    * @return @p this.
    */
   slot& operator=(const slot& src)
-  {
-    slot_base::operator=(src);
-    return *this;
-  }
+  = default;
 
   /** Overrides this slot, making a move from another slot.
    * If @p src is connected to a parent (e.g. a signal), it is copied, not moved.
@@ -231,7 +221,7 @@ public:
 };
 
 #ifndef DOXYGEN_SHOULD_SKIP_THIS
-//template specialization of visitor<>::do_visit_each<>(action, functor):
+// template specialization of visitor<>::do_visit_each<>(action, functor):
 /** Performs a functor on each of the targets of a functor.
  *
  * There are three function overloads for sigc::slot.
@@ -256,23 +246,24 @@ public:
 template <typename T_return, typename... T_arg>
 struct visitor<slot<T_return, T_arg...>>
 {
-  static void do_visit_each(const internal::limit_derived_target<trackable*, internal::slot_do_bind>& _A_action,
-                            const slot<T_return, T_arg...>& _A_target)
+  static void do_visit_each(
+    const internal::limit_derived_target<trackable*, internal::slot_do_bind>& _A_action,
+    const slot<T_return, T_arg...>& _A_target)
   {
     if (_A_target.rep_ && _A_target.rep_->parent_ == nullptr)
-    _A_target.rep_->set_parent(_A_action.action_.rep_, &internal::slot_rep::notify);
+      _A_target.rep_->set_parent(_A_action.action_.rep_, &internal::slot_rep::notify);
   }
 
-  static void do_visit_each(const internal::limit_derived_target<trackable*, internal::slot_do_unbind>& _A_action,
-                            const slot<T_return, T_arg...>& _A_target)
+  static void do_visit_each(
+    const internal::limit_derived_target<trackable*, internal::slot_do_unbind>& _A_action,
+    const slot<T_return, T_arg...>& _A_target)
   {
     if (_A_target.rep_ && _A_target.rep_->parent_ == _A_action.action_.rep_)
       _A_target.rep_->set_parent(nullptr, nullptr);
   }
 
   template <typename T_action>
-  static void do_visit_each(const T_action& _A_action,
-                            const slot<T_return, T_arg...>& _A_target)
+  static void do_visit_each(const T_action& _A_action, const slot<T_return, T_arg...>& _A_target)
   {
     _A_action(_A_target);
   }
index a0c4f7d..f57a337 100644 (file)
@@ -25,7 +25,7 @@ namespace
 // notified, if the slot_rep is deleted when they call disconnect().
 struct destroy_notify_struct : public sigc::notifiable
 {
-  destroy_notify_struct() noexcept : deleted_(false) { }
+  destroy_notify_struct() noexcept : deleted_(false) {}
 
   static void notify(notifiable* data) noexcept
   {
@@ -43,18 +43,21 @@ namespace internal
 {
 // only MSVC needs this to guarantee that all new/delete are executed from the DLL module
 #ifdef SIGC_NEW_DELETE_IN_LIBRARY_ONLY
-void* slot_rep::operator new(size_t size_)
+void*
+slot_rep::operator new(size_t size_)
 {
   return malloc(size_);
 }
 
-void slot_rep::operator delete(void* p)
+void
+slot_rep::operator delete(void* p)
 {
   free(p);
 }
 #endif
 
-void slot_rep::disconnect()
+void
+slot_rep::disconnect()
 {
   // Invalidate the slot.
   // _Must_ be done here because parent_ might defer the actual
@@ -67,18 +70,19 @@ void slot_rep::disconnect()
   if (parent_)
   {
     auto data_ = parent_;
-    parent_ = nullptr;  // Just a precaution.
-    (cleanup_)(data_);  // Notify the parent (might lead to destruction of this!).
+    parent_ = nullptr; // Just a precaution.
+    (cleanup_)(data_); // Notify the parent (might lead to destruction of this!).
   }
 }
 
-//static
-void slot_rep::notify(notifiable* data)
+// static
+void
+slot_rep::notify(notifiable* data)
 {
   auto self_ = reinterpret_cast<slot_rep*>(data);
 
   self_->call_ = nullptr; // Invalidate the slot.
-  
+
   // Make sure we are notified if disconnect() deletes self_, which is trackable.
   destroy_notify_struct notifier;
   self_->add_destroy_notify_callback(&notifier, destroy_notify_struct::notify);
@@ -87,44 +91,40 @@ void slot_rep::notify(notifiable* data)
   if (!notifier.deleted_)
   {
     self_->remove_destroy_notify_callback(&notifier);
-    self_->destroy(); // Detach the stored functor from the other referred trackables and destroy it.
-                      // destroy() might lead to deletion of self_. Bug #564005.
+    self_
+      ->destroy(); // Detach the stored functor from the other referred trackables and destroy it.
+    // destroy() might lead to deletion of self_. Bug #564005.
   }
 }
 
 } // namespace internal
-  
-slot_base::slot_base() noexcept
-: rep_(nullptr),
-  blocked_(false)
-{}
-
-slot_base::slot_base(rep_type* rep) noexcept
-: rep_(rep),
-  blocked_(false)
-{}
-
-slot_base::slot_base(const slot_base& src)
-: rep_(nullptr),
-  blocked_(src.blocked_)
+
+slot_base::slot_base() noexcept : rep_(nullptr), blocked_(false)
+{
+}
+
+slot_base::slot_base(rep_type* rep) noexcept : rep_(rep), blocked_(false)
+{
+}
+
+slot_base::slot_base(const slot_base& src) : rep_(nullptr), blocked_(src.blocked_)
 {
   if (src.rep_)
   {
-    //Check call_ so we can ignore invalidated slots.
-    //Otherwise, destroyed bound reference parameters (whose destruction caused the slot's invalidation) may be used during dup().
-    //Note: I'd prefer to check somewhere during dup(). murrayc.
+    // Check call_ so we can ignore invalidated slots.
+    // Otherwise, destroyed bound reference parameters (whose destruction caused the slot's
+    // invalidation) may be used during dup().
+    // Note: I'd prefer to check somewhere during dup(). murrayc.
     if (src.rep_->call_)
       rep_ = src.rep_->dup();
     else
     {
-      *this = slot_base(); //Return the default invalid slot.
+      *this = slot_base(); // Return the default invalid slot.
     }
   }
 }
 
-slot_base::slot_base(slot_base&& src)
-: rep_(nullptr),
-  blocked_(src.blocked_)
+slot_base::slot_base(slot_base&& src) : rep_(nullptr), blocked_(src.blocked_)
 {
   if (src.rep_)
   {
@@ -133,13 +133,13 @@ slot_base::slot_base(slot_base&& src)
       // src is connected to a parent, e.g. a sigc::signal.
       // Copy, don't move! See https://bugzilla.gnome.org/show_bug.cgi?id=756484
 
-      //Check call_ so we can ignore invalidated slots.
-      //Otherwise, destroyed bound reference parameters (whose destruction
-      //caused the slot's invalidation) may be used during dup().
+      // Check call_ so we can ignore invalidated slots.
+      // Otherwise, destroyed bound reference parameters (whose destruction
+      // caused the slot's invalidation) may be used during dup().
       if (src.rep_->call_)
         rep_ = src.rep_->dup();
       else
-        blocked_ = false; //Return the default invalid slot.
+        blocked_ = false; // Return the default invalid slot.
     }
     else
     {
@@ -147,7 +147,7 @@ slot_base::slot_base(slot_base&& src)
       src.rep_->notify_callbacks();
       rep_ = src.rep_;
 
-      //Wipe src:
+      // Wipe src:
       src.rep_ = nullptr;
       src.blocked_ = false;
     }
@@ -165,7 +165,8 @@ slot_base::operator bool() const noexcept
   return rep_ != nullptr;
 }
 
-void slot_base::delete_rep_with_check()
+void
+slot_base::delete_rep_with_check()
 {
   if (!rep_)
     return;
@@ -188,7 +189,8 @@ void slot_base::delete_rep_with_check()
   }
 }
 
-slot_base& slot_base::operator=(const slot_base& src)
+slot_base&
+slot_base::operator=(const slot_base& src)
 {
   if (src.rep_ == rep_)
   {
@@ -217,7 +219,8 @@ slot_base& slot_base::operator=(const slot_base& src)
   return *this;
 }
 
-slot_base& slot_base::operator=(slot_base&& src)
+slot_base&
+slot_base::operator=(slot_base&& src)
 {
   if (src.rep_ == rep_)
   {
@@ -245,7 +248,7 @@ slot_base& slot_base::operator=(slot_base&& src)
     src.rep_->notify_callbacks();
     new_rep_ = src.rep_;
 
-    //Wipe src:
+    // Wipe src:
     src.rep_ = nullptr;
     src.blocked_ = false;
   }
@@ -259,43 +262,48 @@ slot_base& slot_base::operator=(slot_base&& src)
   return *this;
 }
 
-void slot_base::set_parent(notifiable* parent, notifiable::func_destroy_notify cleanup) const noexcept
+void
+slot_base::set_parent(notifiable* parent, notifiable::func_destroy_notify cleanup) const noexcept
 {
   if (rep_)
     rep_->set_parent(parent, cleanup);
 }
 
-void slot_base::add_destroy_notify_callback(notifiable* data, func_destroy_notify func) const
+void
+slot_base::add_destroy_notify_callback(notifiable* data, func_destroy_notify func) const
 {
   if (rep_)
     rep_->add_destroy_notify_callback(data, func);
 }
 
-void slot_base::remove_destroy_notify_callback(notifiable* data) const
+void
+slot_base::remove_destroy_notify_callback(notifiable* data) const
 {
   if (rep_)
     rep_->remove_destroy_notify_callback(data);
 }
 
-bool slot_base::block(bool should_block) noexcept
+bool
+slot_base::block(bool should_block) noexcept
 {
   bool old = blocked_;
   blocked_ = should_block;
   return old;
 }
 
-bool slot_base::unblock() noexcept
+bool
+slot_base::unblock() noexcept
 {
   return block(false);
 }
 
-void slot_base::disconnect()
+void
+slot_base::disconnect()
 {
   if (rep_)
     rep_->disconnect();
 }
 
-
 /*bool slot_base::empty() const // having this function not inline is killing performance !!!
 {
   if (rep_ && !rep_->call_)
@@ -306,4 +314,4 @@ void slot_base::disconnect()
   return (rep_ == nullptr);
 }*/
 
-} //namespace sigc
+} // namespace sigc
index cd130c1..56cabc8 100644 (file)
@@ -26,7 +26,8 @@
 namespace sigc
 {
 
-namespace internal {
+namespace internal
+{
 
 using hook = void* (*)(void*);
 
@@ -63,43 +64,23 @@ struct SIGC_API slot_rep : public trackable
   /* NB: Instead of slot_rep we could inherit slot_base from trackable.
    * However, a simple benchmark seems to indicate that this slows
    * down dereferencing of slot list iterators. Martin. */
-  //TODO: Try this now? murrayc.
-
-  /// Callback that invokes the contained functor.
-  /* This can't be a virtual function since number of arguments
-   * must be flexible. We use function pointers to slot_call::call_it()
-   * instead. call_ is set to zero to indicate that the slot is invalid.
-   */
-  hook call_;
-
-  /// Callback that detaches the slot_rep object from referred trackables and destroys it.
-  /* This could be a replaced by a virtual dtor. However since this struct is
-   * crucual for the efficiency of the whole library we want to avoid this.
-   */
-  func_destroy_notify destroy_;
-
-  using hook_dup = slot_rep* (*)(slot_rep*);
-
-private:
-  /** Callback that makes a deep copy of the slot_rep object.
-   * @return A deep copy of the slot_rep object.
-   */
-  hook_dup dup_;
+  // TODO: Try this now? murrayc.
 
 public:
-  /** Callback of parent_. */
-  func_destroy_notify cleanup_;
-
-  /** Parent object whose callback cleanup_ is executed on notification. */
-  notifiable* parent_;
+  using hook_dup = slot_rep* (*)(slot_rep*);
 
   inline slot_rep(hook call__, notifiable::func_destroy_notify destroy__, hook_dup dup__) noexcept
-    : call_(call__), destroy_(destroy__), dup_(dup__), cleanup_(nullptr), parent_(nullptr) {}
+    : call_(call__),
+      cleanup_(nullptr),
+      parent_(nullptr),
+      destroy_(destroy__),
+      dup_(dup__)
+  {
+  }
 
-  inline ~slot_rep()
-    { destroy(); }
+  inline ~slot_rep() { destroy(); }
 
-  // only MSVC needs this to guarantee that all new/delete are executed from the DLL module
+// only MSVC needs this to guarantee that all new/delete are executed from the DLL module
 #ifdef SIGC_NEW_DELETE_IN_LIBRARY_ONLY
   void* operator new(size_t size_);
   void operator delete(void* p);
@@ -108,13 +89,18 @@ public:
   /** Destroys the slot_rep object (but doesn't delete it).
    */
   inline void destroy()
-    { if (destroy_) (*destroy_)(this); }
+  {
+    if (destroy_)
+      (*destroy_)(this);
+  }
 
   /** Makes a deep copy of the slot_rep object.
    * @return A deep copy of the slot_rep object.
    */
   inline slot_rep* dup() const
-    { return reinterpret_cast<slot_rep*>((*dup_)(const_cast<slot_rep*>(this))); }
+  {
+    return reinterpret_cast<slot_rep*>((*dup_)(const_cast<slot_rep*>(this)));
+  }
 
   /** Set the parent with a callback.
    * slots have one parent exclusively.
@@ -122,10 +108,10 @@ public:
    * @param cleanup The callback to execute from notify().
    */
   inline void set_parent(notifiable* parent, notifiable::func_destroy_notify cleanup) noexcept
-    {
-      parent_ = parent;
-      cleanup_ = cleanup;
-    }
+  {
+    parent_ = parent;
+    cleanup_ = cleanup;
+  }
 
   /// Invalidates the slot and executes the parent's cleanup callback.
   void disconnect();
@@ -138,6 +124,32 @@ public:
    * @param data The slot_rep object that is becoming invalid (@p this).
    */
   static void notify(notifiable* data);
+
+  /// Callback that invokes the contained functor.
+  /* This can't be a virtual function since number of arguments
+   * must be flexible. We use function pointers to slot_call::call_it()
+   * instead. call_ is set to zero to indicate that the slot is invalid.
+   */
+  hook call_;
+
+  /** Callback of parent_. */
+  func_destroy_notify cleanup_;
+
+  /** Parent object whose callback cleanup_ is executed on notification. */
+  notifiable* parent_;
+
+protected:
+  /// Callback that detaches the slot_rep object from referred trackables and destroys it.
+  /* This could be a replaced by a virtual dtor. However since this struct is
+   * crucual for the efficiency of the whole library we want to avoid this.
+   */
+  func_destroy_notify destroy_;
+
+private:
+  /** Callback that makes a deep copy of the slot_rep object.
+   * @return A deep copy of the slot_rep object.
+   */
+  hook_dup dup_;
 };
 
 /** Functor used to add a dependency to a trackable.
@@ -152,13 +164,15 @@ struct SIGC_API slot_do_bind
   /** Construct a slot_do_bind functor.
    * @param rep The slot_rep object trackables should notify on destruction.
    */
-  inline slot_do_bind(slot_rep* rep) noexcept : rep_(rep) {}
+  inline explicit slot_do_bind(slot_rep* rep) noexcept : rep_(rep) {}
 
   /** Adds a dependency to @p t.
    * @param t The trackable object to add a callback to.
    */
   inline void operator()(const trackable* t) const
-    { t->add_destroy_notify_callback(rep_, &slot_rep::notify); }
+  {
+    t->add_destroy_notify_callback(rep_, &slot_rep::notify);
+  }
 };
 
 /// Functor used to remove a dependency from a trackable.
@@ -170,24 +184,24 @@ struct SIGC_API slot_do_unbind
   /** Construct a slot_do_unbind functor.
    * @param rep The slot_rep object trackables don't need to notify on destruction any more.
    */
-  inline slot_do_unbind(slot_rep* rep) noexcept : rep_(rep) {}
+  inline explicit slot_do_unbind(slot_rep* rep) noexcept : rep_(rep) {}
 
   /** Removes a dependency from @p t.
    * @param t The trackable object to remove the callback from.
    */
-  inline void operator()(const trackable* t) const
-    { t->remove_destroy_notify_callback(rep_); }
+  inline void operator()(const trackable* t) const { t->remove_destroy_notify_callback(rep_); }
 };
 
-} //namespace internal
-
+} // namespace internal
 
 /** @defgroup slot Slots
  * Slots are type-safe representations of callback methods and functions.
  * A slot can be constructed from any function object or function, regardless of
  * whether it is a global function, a member method, static, or virtual.
  *
- * Use the sigc::mem_fun() and sigc::ptr_fun() template functions to get a sigc::slot, like so:
+ * @section slots-creating Creating Slots
+ *
+ * Use the sigc::mem_fun() or sigc::ptr_fun() template functions to get a sigc::slot, like so:
  * @code
  * sigc::slot<void(int)> sl = sigc::mem_fun(someobj, &SomeClass::somemethod);
  * @endcode
@@ -204,6 +218,13 @@ struct SIGC_API slot_do_unbind
  *
  * You can also pass slots as method parameters where you might normally pass a function pointer.
  *
+ * @section slots-auto-disconnect Member Methods and Automatic Disconnection
+ *
+ * See @ref mem_fun "sigc::mem_fun()" about deriving from sigc::trackable to prevent member
+ * methods from being called after the instance has been destroyed.
+ *
+ * @section slots-auto auto
+ *
  * sigc::mem_fun() and sigc::ptr_fun() return functors, but those functors are
  * not slots.
  * @code
@@ -214,6 +235,12 @@ struct SIGC_API slot_do_unbind
  * auto sl = sigc::mem_fun(someobj, &SomeClass::somemethod); // Not a slot!
  * @endcode
  *
+ * If you don't explicitly use a sigc::slot then the slot could call a method
+ * on an instance after it has been destroyed even if the method is in a class
+ * that derives from sigc::trackable.
+ *
+ * @section slots-with-lambdas C++ Lambdas
+ *
  * A C++11 lambda expression is a functor (function object). It is automatically
  * wrapped in a slot, if it is connected to a signal.
  * @code
@@ -226,11 +253,9 @@ struct SIGC_API slot_do_unbind
  * @endcode
  *
  * If you connect a C++11 lambda expression or a std::function<> instance to
- * a signal or assign it to a slot,
- * - With libsigc++ versions before 2.6, if the return type is not void,
-     you must use the #SIGC_FUNCTORS_DEDUCE_RESULT_TYPE_WITH_DECLTYPE macro,
- * - if your functor contains references to sigc::trackable derived objects,
- *   those objects will not be tracked, unless you also use sigc::track_obj().
+ * a signal or assign it to a slot, if your functor contains references to
+ * sigc::trackable derived objects, those objects will not be tracked,
+ * unless you also use sigc::track_obj().
  *
  * @ingroup sigcfunctors
  */
@@ -300,8 +325,6 @@ public:
    */
   void set_parent(notifiable* parent, notifiable::func_destroy_notify cleanup) const noexcept;
 
-
-
   /** Add a callback that is executed (notified) when the slot is detroyed.
    * This function is used internally by connection objects.
    * @param data Passed into func upon notification.
@@ -318,15 +341,13 @@ public:
   /** Returns whether the slot is invalid.
    * @return @p true if the slot is invalid (empty).
    */
-  inline bool empty() const noexcept
-    { return (!rep_ || !rep_->call_); }
+  inline bool empty() const noexcept { return (!rep_ || !rep_->call_); }
 
   /** Returns whether the slot is blocked.
    * @return @p true if the slot is blocked.
    */
-  inline bool blocked() const noexcept
-    { return blocked_; }
-    
+  inline bool blocked() const noexcept { return blocked_; }
+
   /** Sets the blocking state.
    * If @e should_block is @p true then the blocking state is set.
    * Subsequent calls to slot::operator()() don't invoke the functor
@@ -347,9 +368,10 @@ public:
    */
   void disconnect();
 
-//The Tru64 and Solaris Forte 5.5 compilers needs this operator=() to be public. I'm not sure why, or why it needs to be protected usually. murrayc.
-//See bug #168265. 
-//protected:
+  // The Tru64 and Solaris Forte 5.5 compilers needs this operator=() to be public. I'm not sure
+  // why, or why it needs to be protected usually. murrayc.
+  // See bug #168265.
+  // protected:
   /** Overrides this slot, making a copy from another slot.
    * @param src The slot from which to make a copy.
    * @return @p this.
@@ -365,7 +387,7 @@ public:
 
 public: // public to avoid template friend declarations
   /** Typed slot_rep object that contains a functor. */
-  mutable rep_type *rep_;
+  mutable rep_typerep_;
 
   /** Indicates whether the slot is blocked. */
   bool blocked_;
@@ -374,7 +396,6 @@ private:
   void delete_rep_with_check();
 };
 
-} //namespace sigc
+} // namespace sigc
 
 #endif //_SIGC_SLOT_BASE_HPP_
-
index ba056b8..9167d87 100644 (file)
@@ -5,7 +5,8 @@
 #include <sigc++/type_traits.h>
 #include <sigc++/trackable.h>
 
-namespace sigc {
+namespace sigc
+{
 
 /** A limit_reference<Foo> object stores a reference (Foo&), but makes sure that,
  * if Foo inherits from sigc::trackable, then visit_each<>() will "limit" itself to the
@@ -28,8 +29,7 @@ namespace sigc {
  * - @e T_type The type of the reference.
  */
 template <class T_type,
-          bool I_derives_trackable =
-            std::is_base_of<trackable, std::decay_t<T_type>>::value>
+  bool I_derives_trackable = std::is_base_of<trackable, std::decay_t<T_type>>::value>
 class limit_reference
 {
 public:
@@ -38,23 +38,20 @@ public:
   /** Constructor.
    * @param _A_target The reference to limit.
    */
-  limit_reference(reference_type& _A_target)
-    : visited(_A_target)
-    {}
+  limit_reference(reference_type& _A_target) : visited(_A_target) {}
 
   /** Retrieve the entity to visit for visit_each().
-   * Depending on the template specialization, this is either a derived reference, or sigc::trackable& if T_type derives from sigc::trackable.
+   * Depending on the template specialization, this is either a derived reference, or
+   * sigc::trackable& if T_type derives from sigc::trackable.
    * @return The reference.
    */
-  inline const reference_type& visit() const
-    { return visited; }
+  inline const reference_type& visit() const { return visited; }
 
   /** Retrieve the reference.
    * This is always a reference to the derived instance.
    * @return The reference.
    */
-  inline T_type& invoke() const
-    { return visited; }
+  inline T_type& invoke() const { return visited; }
 
 private:
   /** The reference.
@@ -74,28 +71,24 @@ public:
   /** Constructor.
    * @param _A_target The reference to limit.
    */
-  limit_reference(reference_type& _A_target)
-    : visited(_A_target),
-      invoked(_A_target)
-    {}
+  limit_reference(reference_type& _A_target) : visited(_A_target), invoked(_A_target) {}
 
   /** Retrieve the entity to visit for visit_each().
-   * Depending on the template specialization, this is either a derived reference, or sigc::trackable& if T_type derives from sigc::trackable.
+   * Depending on the template specialization, this is either a derived reference, or
+   * sigc::trackable& if T_type derives from sigc::trackable.
    * @return The reference.
    */
-  inline const trackable& visit() const
-    { return visited; }
+  inline const trackable& visit() const { return visited; }
 
   /** Retrieve the reference.
    * This is always a reference to the derived instance.
    * @return The reference.
    */
-  inline T_type& invoke() const
-    { return invoked; }
+  inline T_type& invoke() const { return invoked; }
 
 private:
-  using trackable_type = typename std::conditional_t<
-    std::is_const<reference_type>::value, const trackable, trackable>;
+  using trackable_type =
+    typename std::conditional_t<std::is_const<reference_type>::value, const trackable, trackable>;
 
   /** The trackable reference.
    */
@@ -116,11 +109,10 @@ private:
  * @param _A_target The visited instance.
  */
 template <class T_type>
-struct visitor<limit_reference<T_type> >
+struct visitor<limit_reference<T_type>>
 {
   template <class T_action>
-  static void do_visit_each(const T_action& _A_action,
-                            const limit_reference<T_type>& _A_target)
+  static void do_visit_each(const T_action& _A_action, const limit_reference<T_type>& _A_target)
   {
     sigc::visit_each(_A_action, _A_target.visit());
   }
index 3c07f1c..cd6cc32 100644 (file)
 
 #include <sigc++config.h>
 
+namespace sigc
+{
 
-namespace sigc {
-
-namespace internal {
+namespace internal
+{
 
 template <class>
 struct member_method_is_const;
@@ -53,7 +54,6 @@ struct member_method_is_const<T_result (T_obj::*)(T_arg...) const volatile>
   constexpr static bool value = true;
 };
 
-
 template <class>
 struct member_method_is_volatile;
 
@@ -81,8 +81,7 @@ struct member_method_is_volatile<T_result (T_obj::*)(T_arg...) const volatile>
   constexpr static bool value = true;
 };
 
-
-//member method class:
+// member method class:
 
 template <class T_result, class... T_arg>
 struct member_method_class
@@ -90,31 +89,30 @@ struct member_method_class
 };
 
 template <class T_obj, class T_result, class... T_arg>
-struct member_method_class<T_result(T_obj::*)(T_arg...)>
+struct member_method_class<T_result (T_obj::*)(T_arg...)>
 {
   using type = T_obj;
 };
 
 template <class T_obj, class T_result, class... T_arg>
-struct member_method_class<T_result(T_obj::*)(T_arg...) volatile>
+struct member_method_class<T_result (T_obj::*)(T_arg...) volatile>
 {
   using type = T_obj;
 };
 
 template <class T_obj, class T_result, class... T_arg>
-struct member_method_class<T_result(T_obj::*)(T_arg...) const>
+struct member_method_class<T_result (T_obj::*)(T_arg...) const>
 {
   using type = T_obj;
 };
 
 template <class T_obj, class T_result, class... T_arg>
-struct member_method_class<T_result(T_obj::*)(T_arg...) const volatile>
+struct member_method_class<T_result (T_obj::*)(T_arg...) const volatile>
 {
   using type = T_obj;
 };
 
-
-//member method result:
+// member method result:
 
 template <class T_result, class... T_arg>
 struct member_method_result
@@ -122,25 +120,25 @@ struct member_method_result
 };
 
 template <class T_obj, class T_result, class... T_arg>
-struct member_method_result<T_result(T_obj::*)(T_arg...)>
+struct member_method_result<T_result (T_obj::*)(T_arg...)>
 {
   using type = T_result;
 };
 
 template <class T_obj, class T_result, class... T_arg>
-struct member_method_result<T_result(T_obj::*)(T_arg...) volatile>
+struct member_method_result<T_result (T_obj::*)(T_arg...) volatile>
 {
   using type = T_result;
 };
 
 template <class T_obj, class T_result, class... T_arg>
-struct member_method_result<T_result(T_obj::*)(T_arg...) const>
+struct member_method_result<T_result (T_obj::*)(T_arg...) const>
 {
   using type = T_result;
 };
 
 template <class T_obj, class T_result, class... T_arg>
-struct member_method_result<T_result(T_obj::*)(T_arg...) const volatile>
+struct member_method_result<T_result (T_obj::*)(T_arg...) const volatile>
 {
   using type = T_result;
 };
index 7dc0790..f6c2fb2 100644 (file)
@@ -19,7 +19,8 @@
 #ifndef _SIGC_REFERENCE_WRAPPER_H_
 #define _SIGC_REFERENCE_WRAPPER_H_
 
-namespace sigc {
+namespace sigc
+{
 
 template <class T_type>
 struct unwrap_reference
@@ -28,24 +29,30 @@ struct unwrap_reference
 };
 
 template <class T_type>
-struct unwrap_reference<std::reference_wrapper<T_type> >
+struct unwrap_reference<std::reference_wrapper<T_type>>
 {
   using type = T_type&;
 };
 
 template <class T_type>
-struct unwrap_reference<std::reference_wrapper<const T_type> >
+struct unwrap_reference<std::reference_wrapper<const T_type>>
 {
   using type = const T_type&;
 };
 
 template <class T_type>
-T_type& unwrap(const std::reference_wrapper<T_type>& v)
-{ return v; }
+T_type&
+unwrap(const std::reference_wrapper<T_type>& v)
+{
+  return v;
+}
 
 template <class T_type>
-const T_type& unwrap(const std::reference_wrapper<const T_type>& v)
-{ return v; }
+const T_type&
+unwrap(const std::reference_wrapper<const T_type>& v)
+{
+  return v;
+}
 
 } /* namespace sigc */
 
index c1d08d7..8f0837b 100644 (file)
@@ -21,5 +21,4 @@
 
 #include <sigc++/adaptors/retype_return.h>
 
-
 #endif /* _SIGC_RETYPE_RETURN_HPP_ */
index 54c07d4..de79222 100644 (file)
  *
  * @section description Description
  *
- * libsigc++ provides a typesafe (at compile time) callback system for standard 
- * C++. It allows you to define signals and to connect those signals to any 
- * callback function, either a global or a member function, regardless of whether 
- * it is static or virtual. It also contains adaptor classes for connection of 
+ * libsigc++ provides a typesafe (at compile time) callback system for standard
+ * C++. It allows you to define signals and to connect those signals to any
+ * callback function, either a global or a member function, regardless of whether
+ * it is static or virtual. It also contains adaptor classes for connection of
  * dissimilar callbacks.
  *
- * For instance, see the @ref signal "Signals", @ref sigcfunctors "Functors", 
+ * For instance, see the @ref signal "Signals", @ref sigcfunctors "Functors",
  * @ref slot "Slots" and @ref adaptors "Adaptors".
  *
- * See also the 
- * <a href="http://libsigc.sourceforge.net/libsigc2/docs/manual/html/index.html">libsigc++ tutorial</a>, 
- * the <a href="http://libsigc.sourceforge.net/">libsigc++ website</a>, and 
- * the <a href="http://library.gnome.org/devel/gtkmm-tutorial/unstable/chapter-signals.html">Signals appendix of the Programming with gtkmm book</a>.
+ * See also the
+ * <a href="http://libsigc.sourceforge.net/libsigc2/docs/manual/html/index.html">libsigc++
+ * tutorial</a>,
+ * the <a href="http://libsigc.sourceforge.net/">libsigc++ website</a>, and
+ * the <a href="http://library.gnome.org/devel/gtkmm-tutorial/unstable/chapter-signals.html">Signals
+ * appendix of the Programming with gtkmm book</a>.
  *
  * @section features Features
  *
  * - Compile-time typesafe callbacks (also faster than run time checks)
- * - Type-safety violations report the line number correctly with template names 
+ * - Type-safety violations report the line number correctly with template names
  *   (no tracing template failures into headers)
  * - No compiler extensions or meta compilers required
  * - Proper handling of dynamic objects and signals (deleted objects will not
  *
  * Your @c pkg_check_modules() call should also mention any other libraries that
  * you need to use via pkg-config.
- *
- * @section scope Scope of Documentation
- *
- * libsigc++ contains many template functions and template classes/structs,
- * some with many specializations. This reference manual does not show all
- * specializations of those templates that hardly any user will use directly.
  */
 
 #include <sigc++/signal.h>
diff --git a/sigc++/signal.cc b/sigc++/signal.cc
deleted file mode 100644 (file)
index 993eee4..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-// -*- c++ -*-
-/*
- * Copyright 2002, The libsigc++ Development Team
- *
- *  This library is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Lesser General Public
- *  License as published by the Free Software Foundation; either
- *  version 2.1 of the License, or (at your option) any later version.
- *
- *  This library is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- *  Lesser General Public License for more details.
- *
- *  You should have received a copy of the GNU Lesser General Public
- *  License along with this library; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-#include <sigc++/signal.h>
-
-namespace sigc {
-
-
-} /* sigc */
index 6df4207..e383330 100644 (file)
@@ -29,7 +29,8 @@
 #include <tuple>
 #include <utility>
 
-namespace sigc {
+namespace sigc
+{
 
 /** STL-style iterator for slot_list.
  *
@@ -50,49 +51,43 @@ struct slot_iterator
 
   using iterator_type = typename internal::signal_impl::iterator_type;
 
-  slot_iterator()
-    {}
+  slot_iterator() = default;
 
-  explicit slot_iterator(const iterator_type& i)
-    : i_(i) {}
+  explicit slot_iterator(const iterator_type& i) : i_(i) {}
 
-  reference operator*() const
-    { return static_cast<reference>(*i_); }
+  reference operator*() const { return static_cast<reference>(*i_); }
 
-  pointer operator->() const
-    { return &(operator*()); }
+  pointer operator->() const { return &(operator*()); }
 
   slot_iterator& operator++()
-    {
-      ++i_;
-      return *this;
-    }
+  {
+    ++i_;
+    return *this;
+  }
 
   slot_iterator operator++(int)
-    { 
-      slot_iterator __tmp(*this);
-      ++i_;
-      return __tmp;
-    }
+  {
+    slot_iterator __tmp(*this);
+    ++i_;
+    return __tmp;
+  }
 
   slot_iterator& operator--()
-    {
-      --i_;
-      return *this;
-    }
+  {
+    --i_;
+    return *this;
+  }
 
   slot_iterator operator--(int)
-    {
-      slot_iterator __tmp(*this);
-      --i_;
-      return __tmp;
-    }
+  {
+    slot_iterator __tmp(*this);
+    --i_;
+    return __tmp;
+  }
 
-  bool operator == (const slot_iterator& other) const
-    { return i_ == other.i_; }
+  bool operator==(const slot_iterator& other) const { return i_ == other.i_; }
 
-  bool operator != (const slot_iterator& other) const
-    { return i_ != other.i_; }
+  bool operator!=(const slot_iterator& other) const { return i_ != other.i_; }
 
   iterator_type i_;
 };
@@ -116,49 +111,43 @@ struct slot_const_iterator
 
   using iterator_type = typename internal::signal_impl::const_iterator_type;
 
-  slot_const_iterator()
-    {}
+  slot_const_iterator() = default;
 
-  explicit slot_const_iterator(const iterator_type& i)
-    : i_(i) {}
+  explicit slot_const_iterator(const iterator_type& i) : i_(i) {}
 
-  reference operator*() const
-    { return static_cast<reference>(*i_); }
+  reference operator*() const { return static_cast<reference>(*i_); }
 
-  pointer operator->() const
-    { return &(operator*()); }
+  pointer operator->() const { return &(operator*()); }
 
   slot_const_iterator& operator++()
-    {
-      ++i_;
-      return *this;
-    }
+  {
+    ++i_;
+    return *this;
+  }
 
   slot_const_iterator operator++(int)
-    { 
-      slot_const_iterator __tmp(*this);
-      ++i_;
-      return __tmp;
-    }
+  {
+    slot_const_iterator __tmp(*this);
+    ++i_;
+    return __tmp;
+  }
 
   slot_const_iterator& operator--()
-    {
-      --i_;
-      return *this;
-    }
+  {
+    --i_;
+    return *this;
+  }
 
   slot_const_iterator operator--(int)
-    {
-      slot_const_iterator __tmp(*this);
-      --i_;
-      return __tmp;
-    }
+  {
+    slot_const_iterator __tmp(*this);
+    --i_;
+    return __tmp;
+  }
 
-  bool operator == (const slot_const_iterator& other) const
-    { return i_ == other.i_; }
+  bool operator==(const slot_const_iterator& other) const { return i_ == other.i_; }
 
-  bool operator != (const slot_const_iterator& other) const
-    { return i_ != other.i_; }
+  bool operator!=(const slot_const_iterator& other) const { return i_ != other.i_; }
 
   iterator_type i_;
 };
@@ -181,95 +170,79 @@ struct slot_list
 
   using iterator = slot_iterator<slot_type>;
   using const_iterator = slot_const_iterator<slot_type>;
-  
+
   using reverse_iterator = std::reverse_iterator<iterator>;
   using const_reverse_iterator = std::reverse_iterator<const_iterator>;
 
-  slot_list()
-    : list_(nullptr) {}
+  slot_list() : list_(nullptr) {}
 
-  explicit slot_list(internal::signal_impl* __list)
-    : list_(__list) {}
+  explicit slot_list(internal::signal_impl* __list) : list_(__list) {}
 
-  iterator begin()
-    { return iterator(list_->slots_.begin()); }
+  iterator begin() { return iterator(list_->slots_.begin()); }
 
-  const_iterator begin() const
-    { return const_iterator(list_->slots_.begin()); }
+  const_iterator begin() const { return const_iterator(list_->slots_.begin()); }
 
-  iterator end()
-    { return iterator(list_->slots_.end()); }
+  iterator end() { return iterator(list_->slots_.end()); }
 
-  const_iterator end() const
-    { return const_iterator(list_->slots_.end()); }
+  const_iterator end() const { return const_iterator(list_->slots_.end()); }
 
-  reverse_iterator rbegin() 
-    { return reverse_iterator(end()); }
+  reverse_iterator rbegin() { return reverse_iterator(end()); }
 
-  const_reverse_iterator rbegin() const 
-    { return const_reverse_iterator(end()); }
+  const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); }
 
-  reverse_iterator rend()
-    { return reverse_iterator(begin()); }
+  reverse_iterator rend() { return reverse_iterator(begin()); }
 
-  const_reverse_iterator rend() const
-    { return const_reverse_iterator(begin()); }
+  const_reverse_iterator rend() const { return const_reverse_iterator(begin()); }
 
-  reference front()
-    { return *begin(); }
+  reference front() { return *begin(); }
 
-  const_reference front() const
-    { return *begin(); }
+  const_reference front() const { return *begin(); }
 
-  reference back()
-    { return *(--end()); }
+  reference back() { return *(--end()); }
 
-  const_reference back() const
-    { return *(--end()); }
+  const_reference back() const { return *(--end()); }
 
   iterator insert(iterator i, const slot_type& slot_)
-    { return iterator(list_->insert(i.i_, static_cast<const slot_base&>(slot_))); }
+  {
+    return iterator(list_->insert(i.i_, static_cast<const slot_base&>(slot_)));
+  }
 
   iterator insert(iterator i, slot_type&& slot_)
-    { return iterator(list_->insert(i.i_, std::move(static_cast<slot_base&>(slot_)))); }
+  {
+    return iterator(list_->insert(i.i_, std::move(static_cast<slot_base&>(slot_))));
+  }
 
-  void push_front(const slot_type& c)
-    { insert(begin(), c); }
+  void push_front(const slot_type& c) { insert(begin(), c); }
 
-  void push_front(slot_type&& c)
-    { insert(begin(), std::move(c)); }
+  void push_front(slot_type&& c) { insert(begin(), std::move(c)); }
 
-  void push_back(const slot_type& c)
-    { insert(end(), c); }
+  void push_back(const slot_type& c) { insert(end(), c); }
 
-  void push_back(slot_type&& c)
-    { insert(end(), std::move(c)); }
+  void push_back(slot_type&& c) { insert(end(), std::move(c)); }
 
-  iterator erase(iterator i)
-    { return iterator(list_->erase(i.i_)); }
+  iterator erase(iterator i) { return iterator(list_->erase(i.i_)); }
 
   iterator erase(iterator first_, iterator last_)
-    {
-      while (first_ != last_)
-        first_ = erase(first_);
-      return last_;
-    }
+  {
+    while (first_ != last_)
+      first_ = erase(first_);
+    return last_;
+  }
 
-  void pop_front()
-    { erase(begin()); }
+  void pop_front() { erase(begin()); }
 
   void pop_back()
-    { 
-      auto tmp_ = end();
-      erase(--tmp_);
-    }
+  {
+    auto tmp_ = end();
+    erase(--tmp_);
+  }
 
-protected:
+private:
   internal::signal_impl* list_;
 };
 
-
-namespace internal {
+namespace internal
+{
 
 /** Special iterator over sigc::internal::signal_impl's slot list that holds extra data.
  * This iterators is for use in accumulators. operator*() executes
@@ -283,8 +256,8 @@ struct slot_iterator_buf
   using difference_type = std::ptrdiff_t;
   using iterator_category = std::bidirectional_iterator_tag;
 
-  //These are needed just to make this a proper C++ iterator, 
-  //that can be used with standard C++ algorithms.
+  // These are needed just to make this a proper C++ iterator,
+  // that can be used with standard C++ algorithms.
   using value_type = T_result;
   using reference = T_result&;
   using pointer = T_result*;
@@ -295,60 +268,61 @@ struct slot_iterator_buf
 
   using iterator_type = signal_impl::const_iterator_type;
 
-  slot_iterator_buf()
-    : c_(nullptr), invoked_(false) {}
+  slot_iterator_buf() : c_(nullptr), invoked_(false) {}
 
-  slot_iterator_buf(const iterator_type& i, const emitter_type* c)
-    : i_(i), c_(c), invoked_(false) {}
+  slot_iterator_buf(const iterator_type& i, const emitter_type* c) : i_(i), c_(c), invoked_(false)
+  {
+  }
 
   decltype(auto) operator*() const
+  {
+    if (!i_->empty() && !i_->blocked() && !invoked_)
     {
-      if (!i_->empty() && !i_->blocked() && !invoked_)
-        {
-          r_ = (*c_)(static_cast<const slot_type&>(*i_));
-          invoked_ = true;
-        }
-      return r_;
+      r_ = (*c_)(static_cast<const slot_type&>(*i_));
+      invoked_ = true;
     }
+    return r_;
+  }
 
   slot_iterator_buf& operator++()
-    {
-      ++i_;
-      invoked_ = false;
-      return *this;
-    }
+  {
+    ++i_;
+    invoked_ = false;
+    return *this;
+  }
 
   slot_iterator_buf operator++(int)
-    { 
-      slot_iterator_buf __tmp(*this);
-      ++i_;
-      invoked_ = false;
-      return __tmp;
-    }
+  {
+    slot_iterator_buf __tmp(*this);
+    ++i_;
+    invoked_ = false;
+    return __tmp;
+  }
 
   slot_iterator_buf& operator--()
-    {
-      --i_;
-      invoked_ = false;
-      return *this;
-    }
+  {
+    --i_;
+    invoked_ = false;
+    return *this;
+  }
 
   slot_iterator_buf operator--(int)
-    {
-      slot_iterator_buf __tmp(*this);
-      --i_;
-      invoked_ = false;
-      return __tmp;
-    }
+  {
+    slot_iterator_buf __tmp(*this);
+    --i_;
+    invoked_ = false;
+    return __tmp;
+  }
 
-  bool operator == (const slot_iterator_buf& other) const
-    { return (!c_ || (i_ == other.i_)); } /* If '!c_' the iterators are empty.
-                                           * Unfortunately, empty stl iterators are not equal.
-                                           * We are forcing equality so that 'first==last'
-                                           * in the accumulator's emit function yields true. */
+  bool operator==(const slot_iterator_buf& other) const
+  {
+    return (!c_ || (i_ == other.i_));
+  } /* If '!c_' the iterators are empty.
+     * Unfortunately, empty stl iterators are not equal.
+     * We are forcing equality so that 'first==last'
+     * in the accumulator's emit function yields true. */
 
-  bool operator != (const slot_iterator_buf& other) const
-    { return (c_ && (i_ != other.i_)); }
+  bool operator!=(const slot_iterator_buf& other) const { return (c_ && (i_ != other.i_)); }
 
 private:
   iterator_type i_;
@@ -372,56 +346,54 @@ struct slot_iterator_buf<T_emitter, void>
 
   using iterator_type = signal_impl::const_iterator_type;
 
-  slot_iterator_buf()
-    : c_(nullptr), invoked_(false) {}
+  slot_iterator_buf() : c_(nullptr), invoked_(false) {}
 
-  slot_iterator_buf(const iterator_type& i, const emitter_type* c)
-    : i_(i), c_(c), invoked_(false) {}
+  slot_iterator_buf(const iterator_type& i, const emitter_type* c) : i_(i), c_(c), invoked_(false)
+  {
+  }
 
   void operator*() const
+  {
+    if (!i_->empty() && !i_->blocked() && !invoked_)
     {
-      if (!i_->empty() && !i_->blocked() && !invoked_)
-        {
-          (*c_)(static_cast<const slot_type&>(*i_));
-          invoked_ = true;
-        }
+      (*c_)(static_cast<const slot_type&>(*i_));
+      invoked_ = true;
     }
+  }
 
   slot_iterator_buf& operator++()
-    {
-      ++i_;
-      invoked_ = false;
-      return *this;
-    }
+  {
+    ++i_;
+    invoked_ = false;
+    return *this;
+  }
 
   slot_iterator_buf operator++(int)
-    { 
-      slot_iterator_buf __tmp(*this);
-      ++i_;
-      invoked_ = false;
-      return __tmp;
-    }
+  {
+    slot_iterator_buf __tmp(*this);
+    ++i_;
+    invoked_ = false;
+    return __tmp;
+  }
 
   slot_iterator_buf& operator--()
-    {
-      --i_;
-      invoked_ = false;
-      return *this;
-    }
+  {
+    --i_;
+    invoked_ = false;
+    return *this;
+  }
 
   slot_iterator_buf operator--(int)
-    {
-      slot_iterator_buf __tmp(*this);
-      --i_;
-      invoked_ = false;
-      return __tmp;
-    }
+  {
+    slot_iterator_buf __tmp(*this);
+    --i_;
+    invoked_ = false;
+    return __tmp;
+  }
 
-  bool operator == (const slot_iterator_buf& other) const
-    { return i_ == other.i_; }
+  bool operator==(const slot_iterator_buf& other) const { return i_ == other.i_; }
 
-  bool operator != (const slot_iterator_buf& other) const
-    { return i_ != other.i_; }
+  bool operator!=(const slot_iterator_buf& other) const { return i_ != other.i_; }
 
 private:
   iterator_type i_;
@@ -437,8 +409,8 @@ struct slot_reverse_iterator_buf
   using difference_type = std::ptrdiff_t;
   using iterator_category = std::bidirectional_iterator_tag;
 
-  //These are needed just to make this a proper C++ iterator, 
-  //that can be used with standard C++ algorithms.
+  // These are needed just to make this a proper C++ iterator,
+  // that can be used with standard C++ algorithms.
   using value_type = T_result;
   using reference = T_result&;
   using pointer = T_result*;
@@ -449,62 +421,64 @@ struct slot_reverse_iterator_buf
 
   using iterator_type = signal_impl::const_iterator_type;
 
-  slot_reverse_iterator_buf()
-    : c_(nullptr), invoked_(false) {}
+  slot_reverse_iterator_buf() : c_(nullptr), invoked_(false) {}
 
   slot_reverse_iterator_buf(const iterator_type& i, const emitter_type* c)
-    : i_(i), c_(c), invoked_(false) {}
+  : i_(i), c_(c), invoked_(false)
+  {
+  }
 
   decltype(auto) operator*() const
+  {
+    auto __tmp(i_);
+    --__tmp;
+    if (!__tmp->empty() && !__tmp->blocked() && !invoked_)
     {
-      iterator_type __tmp(i_);
-         --__tmp;
-      if (!__tmp->empty() && !__tmp->blocked() && !invoked_)
-        {
-          r_ = (*c_)(static_cast<const slot_type&>(*__tmp));
-          invoked_ = true;
-        }
-      return r_;
+      r_ = (*c_)(static_cast<const slot_type&>(*__tmp));
+      invoked_ = true;
     }
+    return r_;
+  }
 
   slot_reverse_iterator_buf& operator++()
-    {
-      --i_;
-      invoked_ = false;
-      return *this;
-    }
+  {
+    --i_;
+    invoked_ = false;
+    return *this;
+  }
 
   slot_reverse_iterator_buf operator++(int)
-    { 
-      slot_reverse_iterator_buf __tmp(*this);
-      --i_;
-      invoked_ = false;
-      return __tmp;
-    }
+  {
+    slot_reverse_iterator_buf __tmp(*this);
+    --i_;
+    invoked_ = false;
+    return __tmp;
+  }
 
   slot_reverse_iterator_buf& operator--()
-    {
-      ++i_;
-      invoked_ = false;
-      return *this;
-    }
+  {
+    ++i_;
+    invoked_ = false;
+    return *this;
+  }
 
   slot_reverse_iterator_buf operator--(int)
-    {
-      slot_reverse_iterator_buf __tmp(*this);
-      ++i_;
-      invoked_ = false;
-      return __tmp;
-    }
+  {
+    slot_reverse_iterator_buf __tmp(*this);
+    ++i_;
+    invoked_ = false;
+    return __tmp;
+  }
 
-  bool operator == (const slot_reverse_iterator_buf& other) const
-    { return (!c_ || (i_ == other.i_)); } /* If '!c_' the iterators are empty.
-                                           * Unfortunately, empty stl iterators are not equal.
-                                           * We are forcing equality so that 'first==last'
-                                           * in the accumulator's emit function yields true. */
+  bool operator==(const slot_reverse_iterator_buf& other) const
+  {
+    return (!c_ || (i_ == other.i_));
+  } /* If '!c_' the iterators are empty.
+     * Unfortunately, empty stl iterators are not equal.
+     * We are forcing equality so that 'first==last'
+     * in the accumulator's emit function yields true. */
 
-  bool operator != (const slot_reverse_iterator_buf& other) const
-    { return (c_ && (i_ != other.i_)); }
+  bool operator!=(const slot_reverse_iterator_buf& other) const { return (c_ && (i_ != other.i_)); }
 
 private:
   iterator_type i_;
@@ -528,58 +502,57 @@ struct slot_reverse_iterator_buf<T_emitter, void>
 
   using iterator_type = signal_impl::const_iterator_type;
 
-  slot_reverse_iterator_buf()
-    : c_(nullptr), invoked_(false) {}
+  slot_reverse_iterator_buf() : c_(nullptr), invoked_(false) {}
 
   slot_reverse_iterator_buf(const iterator_type& i, const emitter_type* c)
-    : i_(i), c_(c), invoked_(false) {}
+  : i_(i), c_(c), invoked_(false)
+  {
+  }
 
   void operator*() const
+  {
+    auto __tmp(i_);
+    --__tmp;
+    if (!__tmp->empty() && !__tmp->blocked() && !invoked_)
     {
-      iterator_type __tmp(i_);
-         --__tmp;
-         if (!__tmp->empty() && !__tmp->blocked() && !invoked_)
-        {
-          (*c_)(static_cast<const slot_type&>(*__tmp));
-          invoked_ = true;
-        }
+      (*c_)(static_cast<const slot_type&>(*__tmp));
+      invoked_ = true;
     }
+  }
 
   slot_reverse_iterator_buf& operator++()
-    {
-      --i_;
-      invoked_ = false;
-      return *this;
-    }
+  {
+    --i_;
+    invoked_ = false;
+    return *this;
+  }
 
   slot_reverse_iterator_buf operator++(int)
-    { 
-      slot_reverse_iterator_buf __tmp(*this);
-      --i_;
-      invoked_ = false;
-      return __tmp;
-    }
+  {
+    slot_reverse_iterator_buf __tmp(*this);
+    --i_;
+    invoked_ = false;
+    return __tmp;
+  }
 
   slot_reverse_iterator_buf& operator--()
-    {
-      ++i_;
-      invoked_ = false;
-      return *this;
-    }
+  {
+    ++i_;
+    invoked_ = false;
+    return *this;
+  }
 
   slot_reverse_iterator_buf operator--(int)
-    {
-      slot_reverse_iterator_buf __tmp(*this);
-      ++i_;
-      invoked_ = false;
-      return __tmp;
-    }
+  {
+    slot_reverse_iterator_buf __tmp(*this);
+    ++i_;
+    invoked_ = false;
+    return __tmp;
+  }
 
-  bool operator == (const slot_reverse_iterator_buf& other) const
-    { return i_ == other.i_; }
+  bool operator==(const slot_reverse_iterator_buf& other) const { return i_ == other.i_; }
 
-  bool operator != (const slot_reverse_iterator_buf& other) const
-    { return i_ != other.i_; }
+  bool operator!=(const slot_reverse_iterator_buf& other) const { return i_ != other.i_; }
 
 private:
   iterator_type i_;
@@ -587,7 +560,6 @@ private:
   mutable bool invoked_;
 };
 
-
 /** Abstracts signal emission.
  * This template implements the emit() function of signal_with_accumulator.
  * Template specializations are available to optimize signal
@@ -608,18 +580,17 @@ struct signal_emit
    * The parameters are stored in member variables. operator()() passes
    * the values on to some slot.
    */
-  signal_emit(type_trait_take_t<T_arg>... _A_a)
-    : _A_a_(_A_a...) {}
+  signal_emit(type_trait_take_t<T_arg>... _A_a) : _A_a_(_A_a...) {}
 
   /** Invokes a slot using the buffered parameter values.
    * @param _A_slot Some slot to invoke.
    * @return The slot's return value.
    */
   T_return operator()(const slot_type& _A_slot) const
-    {
-      const auto seq = std::make_index_sequence<std::tuple_size<decltype(_A_a_)>::value>();
-      return call_call_type_operator_parentheses_with_tuple(_A_slot, _A_a_, seq);
-    }
+  {
+    const auto seq = std::make_index_sequence<std::tuple_size<decltype(_A_a_)>::value>();
+    return call_call_type_operator_parentheses_with_tuple(_A_slot, _A_a_, seq);
+  }
 
   /** Executes a list of slots using an accumulator of type @e T_accumulator.
    * The arguments are buffered in a temporary instance of signal_emit.
@@ -627,48 +598,48 @@ struct signal_emit
    * @return The accumulated return values of the slot invocations as processed by the accumulator.
    */
   static decltype(auto) emit(signal_impl* impl, type_trait_take_t<T_arg>... _A_a)
-    {
-      T_accumulator accumulator;
+  {
+    T_accumulator accumulator;
 
-      if (!impl)
-        return accumulator(slot_iterator_buf_type(), slot_iterator_buf_type());
+    if (!impl)
+      return accumulator(slot_iterator_buf_type(), slot_iterator_buf_type());
 
-      signal_exec exec(impl);
-      temp_slot_list slots(impl->slots_);
+    signal_exec exec(impl);
+    temp_slot_list slots(impl->slots_);
 
-      self_type self(_A_a...);
-      return accumulator(slot_iterator_buf_type(slots.begin(), &self),
-                         slot_iterator_buf_type(slots.end(), &self));
-    }
+    self_type self(_A_a...);
+    return accumulator(
+      slot_iterator_buf_type(slots.begin(), &self), slot_iterator_buf_type(slots.end(), &self));
+  }
 
-  /** Executes a list of slots using an accumulator of type @e T_accumulator in reverse order.   * The arguments are buffered in a temporary instance of signal_emit.
+  /** Executes a list of slots using an accumulator of type @e T_accumulator in reverse order.   *
+   * The arguments are buffered in a temporary instance of signal_emit.
    * @param _A_a Arguments to be passed on to the slots.
    * @return The accumulated return values of the slot invocations as processed by the accumulator.
    */
   static decltype(auto) emit_reverse(signal_impl* impl, type_trait_take_t<T_arg>... _A_a)
-    {
-      T_accumulator accumulator;
+  {
+    T_accumulator accumulator;
 
-      if (!impl)
-        return accumulator(slot_iterator_buf_type(), slot_iterator_buf_type());
+    if (!impl)
+      return accumulator(slot_iterator_buf_type(), slot_iterator_buf_type());
 
-      signal_exec exec(impl);
-      temp_slot_list slots(impl->slots_);
+    signal_exec exec(impl);
+    temp_slot_list slots(impl->slots_);
 
-      self_type self(_A_a...);
-      return accumulator(slot_reverse_iterator_buf_type(slots.end(), &self),
-                         slot_reverse_iterator_buf_type(slots.begin(), &self));
-    }
+    self_type self(_A_a...);
+    return accumulator(slot_reverse_iterator_buf_type(slots.end(), &self),
+      slot_reverse_iterator_buf_type(slots.begin(), &self));
+  }
 
   std::tuple<type_trait_take_t<T_arg>...> _A_a_;
 
 private:
-  //TODO_variadic: Replace this with std::experimental::apply() if that becomes standard
-  //C++, or add our own implementation, to avoid code duplication.
-  template<std::size_t... Is>
-  decltype(auto)
-  call_call_type_operator_parentheses_with_tuple(const slot_type& _A_slot, const std::tuple<T_arg...>& tuple,
-    std::index_sequence<Is...>) const
+  // TODO_variadic: Replace this with std::experimental::apply() if that becomes standard
+  // C++, or add our own implementation, to avoid code duplication.
+  template <std::size_t... Is>
+  decltype(auto) call_call_type_operator_parentheses_with_tuple(
+    const slot_type& _A_slot, const std::tuple<T_arg...>& tuple, std::index_sequence<Is...>) const
   {
     return (_A_slot)(std::get<Is>(tuple)...);
   }
@@ -691,77 +662,92 @@ struct signal_emit<T_return, void, T_arg...>
    * The arguments are passed directly on to the slots.
    * The return value of the last slot invoked is returned.
    * @param first An iterator pointing to the first slot in the list.
-   * @param last An iterator pointing to the last slot in the list.   * @param _A_a Arguments to be passed on to the slots.
+   * @param last An iterator pointing to the last slot in the list.   * @param _A_a Arguments to be
+   * passed on to the slots.
    * @return The return value of the last slot invoked.
    */
   static decltype(auto) emit(signal_impl* impl, type_trait_take_t<T_arg>... _A_a)
+  {
+    if (!impl || impl->slots_.empty())
+      return T_return();
+
+    signal_exec exec(impl);
+    T_return r_ = T_return();
+
+    // Use this scope to make sure that "slots" is destroyed before "exec" is destroyed.
+    // This avoids a leak on MSVC++ - see http://bugzilla.gnome.org/show_bug.cgi?id=306249
     {
-      if (!impl || impl->slots_.empty())
+      temp_slot_list slots(impl->slots_);
+      auto it = slots.begin();
+      for (; it != slots.end(); ++it)
+      {
+        if (!it->empty() && !it->blocked())
+          break;
+      }
+
+      if (it == slots.end())
+      {
+        // note that 'T_return r_();' doesn't work => define 'r_' after this line
+        // and initialize as follows:
         return T_return();
-        
-      signal_exec exec(impl);
-      T_return r_ = T_return(); 
-      
-      //Use this scope to make sure that "slots" is destroyed before "exec" is destroyed.
-      //This avoids a leak on MSVC++ - see http://bugzilla.gnome.org/show_bug.cgi?id=306249
-      { 
-        temp_slot_list slots(impl->slots_);
-        iterator_type it = slots.begin();
-        for (; it != slots.end(); ++it)
-          if (!it->empty() && !it->blocked()) break;
-          
-        if (it == slots.end())
-          return T_return(); // note that 'T_return r_();' doesn't work => define 'r_' after this line and initialize as follows:
-  
+      }
+
+      r_ = (reinterpret_cast<call_type>(it->rep_->call_))(it->rep_, _A_a...);
+      for (++it; it != slots.end(); ++it)
+      {
+        if (it->empty() || it->blocked())
+          continue;
         r_ = (reinterpret_cast<call_type>(it->rep_->call_))(it->rep_, _A_a...);
-        for (++it; it != slots.end(); ++it)
-          {
-            if (it->empty() || it->blocked())
-              continue;
-            r_ = (reinterpret_cast<call_type>(it->rep_->call_))(it->rep_, _A_a...);
-          }
       }
-      
-      return r_;
     }
 
+    return r_;
+  }
+
   /** Executes a list of slots using an accumulator of type @e T_accumulator in reverse order.
    * The arguments are passed directly on to the slots.
    * @param _A_a%1 Argument to be passed on to the slots.
    * @return The return value of the last slot invoked.
    */
   static decltype(auto) emit_reverse(signal_impl* impl, type_trait_take_t<T_arg>... _A_a)
+  {
+    if (!impl || impl->slots_.empty())
+      return T_return();
+
+    signal_exec exec(impl);
+    T_return r_ = T_return();
+
+    // Use this scope to make sure that "slots" is destroyed before "exec" is destroyed.
+    // This avoids a leak on MSVC++ - see http://bugzilla.gnome.org/show_bug.cgi?id=306249
     {
-      if (!impl || impl->slots_.empty())
+      using reverse_iterator_type = std::reverse_iterator<signal_impl::iterator_type>;
+
+      temp_slot_list slots(impl->slots_);
+      reverse_iterator_type it(slots.end());
+      for (; it != reverse_iterator_type(slots.begin()); ++it)
+      {
+        if (!it->empty() && !it->blocked())
+          break;
+      }
+
+      if (it == reverse_iterator_type(slots.begin()))
+      {
+        // note that 'T_return r_();' doesn't work => define 'r_' after this line
+        // and initialize as follows:
         return T_return();
-        
-      signal_exec exec(impl);
-      T_return r_ = T_return(); 
-      
-      //Use this scope to make sure that "slots" is destroyed before "exec" is destroyed.
-      //This avoids a leak on MSVC++ - see http://bugzilla.gnome.org/show_bug.cgi?id=306249
-      { 
-        using reverse_iterator_type = std::reverse_iterator<signal_impl::iterator_type>;
-
-        temp_slot_list slots(impl->slots_);
-        reverse_iterator_type it(slots.end());
-        for (; it != reverse_iterator_type(slots.begin()); ++it)
-          if (!it->empty() && !it->blocked()) break;
-          
-        if (it == reverse_iterator_type(slots.begin()))
-          return T_return(); // note that 'T_return r_();' doesn't work => define 'r_' after this line and initialize as follows:
-  
+      }
+
+      r_ = (reinterpret_cast<call_type>(it->rep_->call_))(it->rep_, _A_a...);
+      for (++it; it != reverse_iterator_type(slots.begin()); ++it)
+      {
+        if (it->empty() || it->blocked())
+          continue;
         r_ = (reinterpret_cast<call_type>(it->rep_->call_))(it->rep_, _A_a...);
-        for (++it; it != reverse_iterator_type(slots.begin()); ++it)
-          {
-            if (it->empty() || it->blocked())
-              continue;
-            r_ = (reinterpret_cast<call_type>(it->rep_->call_))(it->rep_, _A_a...);
-          }
       }
-      
-      return r_;
     }
+
+    return r_;
+  }
 };
 
 /** Abstracts signal emission.
@@ -778,49 +764,53 @@ struct signal_emit<void, void, T_arg...>
   using iterator_type = signal_impl::const_iterator_type;
   using call_type = typename slot_type::call_type;
 
-  /** Executes a list of slots using an accumulator of type @e T_accumulator.   * The arguments are passed directly on to the slots.
+  /** Executes a list of slots using an accumulator of type @e T_accumulator.   * The arguments are
+   * passed directly on to the slots.
    * @param _A_a Arguments to be passed on to the slots.
    */
   static decltype(auto) emit(signal_impl* impl, type_trait_take_t<T_arg>... _A_a)
+  {
+    if (!impl || impl->slots_.empty())
+      return;
+    signal_exec exec(impl);
+    temp_slot_list slots(impl->slots_);
+
+    for (const auto& slot : slots)
     {
-      if (!impl || impl->slots_.empty()) return;
-      signal_exec exec(impl);
-      temp_slot_list slots(impl->slots_);
+      if (slot.empty() || slot.blocked())
+        continue;
 
-      for (iterator_type it = slots.begin(); it != slots.end(); ++it)
-        {
-          if (it->empty() || it->blocked())
-            continue;
-          (reinterpret_cast<call_type>(it->rep_->call_))(it->rep_, _A_a...);
-        }
+      (reinterpret_cast<call_type>(slot.rep_->call_))(slot.rep_, _A_a...);
     }
+  }
 
-  /** Executes a list of slots using an accumulator of type @e T_accumulator in reverse order.   * The arguments are passed directly on to the slots.
+  /** Executes a list of slots using an accumulator of type @e T_accumulator in reverse order.   *
+   * The arguments are passed directly on to the slots.
    * @param first An iterator pointing to the first slot in the list.
-   * @param last An iterator pointing to the last slot in the list.   * @param _A_a Arguments to be passed on to the slots.
+   * @param last An iterator pointing to the last slot in the list.   * @param _A_a Arguments to be
+   * passed on to the slots.
    */
   static decltype(auto) emit_reverse(signal_impl* impl, type_trait_take_t<T_arg>... _A_a)
-    {
-      if (!impl || impl->slots_.empty()) return;
-      signal_exec exec(impl);
-      temp_slot_list slots(impl->slots_);
+  {
+    if (!impl || impl->slots_.empty())
+      return;
+    signal_exec exec(impl);
+    temp_slot_list slots(impl->slots_);
 
-      using reverse_iterator_type = std::reverse_iterator<signal_impl::iterator_type>;
+    using reverse_iterator_type = std::reverse_iterator<signal_impl::iterator_type>;
 
-      for (reverse_iterator_type it = reverse_iterator_type(slots.end()); it != reverse_iterator_type(slots.begin()); ++it)
-        {
-          if (it->empty() || it->blocked())
-            continue;
-          (reinterpret_cast<call_type>(it->rep_->call_))(it->rep_, _A_a...);
-        }
+    for (auto it = reverse_iterator_type(slots.end());
+         it != reverse_iterator_type(slots.begin()); ++it)
+    {
+      if (it->empty() || it->blocked())
+        continue;
+      (reinterpret_cast<call_type>(it->rep_->call_))(it->rep_, _A_a...);
     }
+  }
 };
 
-
-
 } /* namespace internal */
 
-
 /** Signal declaration.
  * signal_with_accumulator can be used to connect() slots that are invoked
  * during subsequent calls to emit(). Any functor or slot
@@ -840,7 +830,8 @@ struct signal_emit<void, void, T_arg...>
  * iteration, insertion and removal of slots.
  *
  * The following template arguments are used:
- * - @e T_return The desired return type for the emit() function (may be overridden by the accumulator). * - @e T_arg Argument types used in the definition of emit().
+ * - @e T_return The desired return type for the emit() function (may be overridden by the
+ * accumulator). * - @e T_arg Argument types used in the definition of emit().
  * - @e T_accumulator The accumulator type used for emission. The default
  * @p void means that no accumulator should be used, for example if signal
  * emission returns the return value of the last slot invoked.
@@ -848,8 +839,7 @@ struct signal_emit<void, void, T_arg...>
  * @ingroup signal
  */
 template <class T_return, class T_accumulator, class... T_arg>
-class signal_with_accumulator
-  : public signal_base
+class signal_with_accumulator : public signal_base
 {
 public:
   using emitter_type = internal::signal_emit<T_return, T_accumulator, T_arg...>;
@@ -883,7 +873,9 @@ public:
    * @return An iterator pointing to the new slot in the list.
    */
   iterator connect(const slot_type& slot_)
-    { return iterator(signal_base::connect(static_cast<const slot_base&>(slot_))); }
+  {
+    return iterator(signal_base::connect(static_cast<const slot_base&>(slot_)));
+  }
 
   /** Add a slot to the list of slots.
    * @see connect(const slot_type& slot_).
@@ -891,7 +883,9 @@ public:
    * @newin{2,8}
    */
   iterator connect(slot_type&& slot_)
-    { return iterator(signal_base::connect(std::move(static_cast<slot_base&>(slot_)))); }
+  {
+    return iterator(signal_base::connect(std::move(static_cast<slot_base&>(slot_))));
+  }
 
   /** Triggers the emission of the signal.
    * During signal emission all slots that have been connected
@@ -904,15 +898,18 @@ public:
    * @return The accumulated return values of the slot invocations.
    */
   decltype(auto) emit(type_trait_take_t<T_arg>... _A_a) const
-    { return emitter_type::emit(impl_, _A_a...); }
+  {
+    return emitter_type::emit(impl_, _A_a...);
+  }
 
   /** Triggers the emission of the signal in reverse order (see emit()). */
   decltype(auto) emit_reverse(type_trait_take_t<T_arg>... _A_a) const
-    { return emitter_type::emit_reverse(impl_, _A_a...); }
+  {
+    return emitter_type::emit_reverse(impl_, _A_a...);
+  }
 
   /** Triggers the emission of the signal (see emit()). */
-  decltype(auto) operator()(type_trait_take_t<T_arg>... _A_a) const
-    { return emit(_A_a...); }
+  decltype(auto) operator()(type_trait_take_t<T_arg>... _A_a) const { return emit(_A_a...); }
 
   /** Creates a functor that calls emit() on this signal.
    * @code
@@ -922,33 +919,32 @@ public:
    * @return A functor that calls emit() on this signal.
    */
   decltype(auto) make_slot() const
-    {
-      return bound_mem_functor<
-        result_type (signal_with_accumulator::*)(type_trait_take_t<T_arg>...) const,
-        type_trait_take_t<T_arg>...>(*this, &signal_with_accumulator::emit);
-    }
+  {
+    return bound_mem_functor<result_type (signal_with_accumulator::*)(type_trait_take_t<T_arg>...)
+                               const,
+      type_trait_take_t<T_arg>...>(*this, &signal_with_accumulator::emit);
+  }
 
   /** Creates an STL-style interface for the signal's list of slots.
    * This interface supports iteration, insertion and removal of slots.
    * @return An STL-style interface for the signal's list of slots.
    */
-  slot_list_type slots()
-    { return slot_list_type(impl()); }
+  slot_list_type slots() { return slot_list_type(impl()); }
 
   /** Creates an STL-style interface for the signal's list of slots.
    * This interface supports iteration, insertion and removal of slots.
    * @return An STL-style interface for the signal's list of slots.
    */
   const slot_list_type slots() const
-    { return slot_list_type(const_cast<signal_with_accumulator*>(this)->impl()); }
+  {
+    return slot_list_type(const_cast<signal_with_accumulator*>(this)->impl());
+  }
 
-  signal_with_accumulator() {}
+  signal_with_accumulator() = default;
 
-  signal_with_accumulator(const signal_with_accumulator& src)
-    : signal_base(src) {}
+  signal_with_accumulator(const signal_with_accumulator& src) : signal_base(src) {}
 
-  signal_with_accumulator(signal_with_accumulator&& src)
-    : signal_base(std::move(src)) {}
+  signal_with_accumulator(signal_with_accumulator&& src) : signal_base(std::move(src)) {}
 
   signal_with_accumulator& operator=(const signal_with_accumulator& src)
   {
@@ -963,7 +959,6 @@ public:
   }
 };
 
-
 /** signal can be used to connect() slots that are invoked
  * during subsequent calls to emit(). Any functor or slot
  * can be passed into connect(). It is converted into a slot
@@ -983,7 +978,8 @@ public:
  *
  * The template arguments determine the function signature of
  * the emit() function:
- * - @e T_return The desired return type of the emit() function. * - @e T_arg Argument types used in the definition of emit().
+ * - @e T_return The desired return type of the emit() function. * - @e T_arg Argument types used in
+ * the definition of emit().
  *
  * For instance, to declare a signal whose connected slot returns void and takes
  * two parameters of bool and int:
@@ -1007,8 +1003,7 @@ template <class T_return, class... T_arg>
 class signal;
 
 template <class T_return, class... T_arg>
-class signal<T_return(T_arg...)>
-  : public signal_with_accumulator<T_return, void, T_arg...>
+class signal<T_return(T_arg...)> : public signal_with_accumulator<T_return, void, T_arg...>
 {
 public:
   using accumulator_type = void;
@@ -1060,22 +1055,24 @@ public:
    * @ingroup signal
    */
   template <class T_accumulator>
-  class accumulated
-    : public signal_with_accumulator<T_return, T_accumulator, T_arg...>
+  class accumulated : public signal_with_accumulator<T_return, T_accumulator, T_arg...>
   {
   public:
-    accumulated() {}
+    accumulated() = default;
     accumulated(const accumulated& src)
-      : signal_with_accumulator<T_return, T_accumulator, T_arg...>(src) {}
+    : signal_with_accumulator<T_return, T_accumulator, T_arg...>(src)
+    {
+    }
   };
 
-  signal() {}
+  signal() = default;
 
-  signal(const signal& src)
-    : signal_with_accumulator<T_return, accumulator_type, T_arg...>(src) {}
+  signal(const signal& src) : signal_with_accumulator<T_return, accumulator_type, T_arg...>(src) {}
 
   signal(signal&& src)
-    : signal_with_accumulator<T_return, accumulator_type, T_arg...>(std::move(src)) {}
+  : signal_with_accumulator<T_return, accumulator_type, T_arg...>(std::move(src))
+  {
+  }
 
   signal& operator=(const signal& src)
   {
@@ -1090,8 +1087,6 @@ public:
   }
 };
 
-
-
 } /* namespace sigc */
 
 #endif /* _SIGC_SIGNAL_H_ */
index 1bf12c4..a16490f 100644 (file)
 #include <sigc++/signal_base.h>
 #include <memory> // std::unique_ptr
 
-namespace sigc {
-namespace internal {
+namespace sigc
+{
+namespace internal
+{
 
 // Data sent from signal_impl::insert() to slot_rep::set_parent() when a slot is
 // connected, and then sent from slot_rep::disconnect() to signal_impl::notify()
@@ -29,13 +31,12 @@ struct self_and_iter : public notifiable
   signal_impl* self_;
   signal_impl::iterator_type iter_;
 
-  self_and_iter(signal_impl* self, signal_impl::iterator_type iter)
-    : self_(self), iter_(iter) {}
+  self_and_iter(signal_impl* self, signal_impl::iterator_type iter) : self_(self), iter_(iter) {}
 };
 
-signal_impl::signal_impl()
-: ref_count_(0), exec_count_(0), deferred_(false)
-{}
+signal_impl::signal_impl() : ref_count_(0), exec_count_(0), deferred_(false)
+{
+}
 
 signal_impl::~signal_impl()
 {
@@ -52,18 +53,21 @@ signal_impl::~signal_impl()
 
 // only MSVC needs this to guarantee that all new/delete are executed from the DLL module
 #ifdef SIGC_NEW_DELETE_IN_LIBRARY_ONLY
-void* signal_impl::operator new(size_t size_)
+void*
+signal_impl::operator new(size_t size_)
 {
   return malloc(size_);
 }
 
-void signal_impl::operator delete(void* p)
+void
+signal_impl::operator delete(void* p)
 {
   free(p);
 }
 #endif
 
-void signal_impl::clear()
+void
+signal_impl::clear()
 {
   // Don't let signal_impl::notify() erase the slots. It would invalidate the
   // iterator in the following loop.
@@ -80,12 +84,14 @@ void signal_impl::clear()
   slots_.clear();
 }
 
-signal_impl::size_type signal_impl::size() const noexcept
+signal_impl::size_type
+signal_impl::size() const noexcept
 {
   return slots_.size();
 }
 
-bool signal_impl::blocked() const noexcept
+bool
+signal_impl::blocked() const noexcept
 {
   for (const auto& slot : const_cast<const std::list<slot_base>&>(slots_))
   {
@@ -95,7 +101,8 @@ bool signal_impl::blocked() const noexcept
   return true;
 }
 
-void signal_impl::block(bool should_block) noexcept
+void
+signal_impl::block(bool should_block) noexcept
 {
   for (auto& slot : slots_)
   {
@@ -103,17 +110,20 @@ void signal_impl::block(bool should_block) noexcept
   }
 }
 
-signal_impl::iterator_type signal_impl::connect(const slot_base& slot_)
+signal_impl::iterator_type
+signal_impl::connect(const slot_base& slot_)
 {
   return insert(slots_.end(), slot_);
 }
 
-signal_impl::iterator_type signal_impl::connect(slot_base&& slot_)
+signal_impl::iterator_type
+signal_impl::connect(slot_base&& slot_)
 {
   return insert(slots_.end(), std::move(slot_));
 }
 
-signal_impl::iterator_type signal_impl::erase(iterator_type i)
+signal_impl::iterator_type
+signal_impl::erase(iterator_type i)
 {
   // Don't let signal_impl::notify() erase the slot. It would be more
   // difficult to get the correct return value from signal_impl::erase().
@@ -128,8 +138,9 @@ signal_impl::iterator_type signal_impl::erase(iterator_type i)
 
   return slots_.erase(i);
 }
-    
-signal_impl::iterator_type signal_impl::insert(signal_impl::iterator_type i, const slot_base& slot_)
+
+signal_impl::iterator_type
+signal_impl::insert(signal_impl::iterator_type i, const slot_base& slot_)
 {
   auto temp = slots_.insert(i, slot_);
   auto si = new self_and_iter(this, temp);
@@ -137,7 +148,8 @@ signal_impl::iterator_type signal_impl::insert(signal_impl::iterator_type i, con
   return temp;
 }
 
-signal_impl::iterator_type signal_impl::insert(signal_impl::iterator_type i, slot_base&& slot_)
+signal_impl::iterator_type
+signal_impl::insert(signal_impl::iterator_type i, slot_base&& slot_)
 {
   auto temp = slots_.insert(i, std::move(slot_));
   auto si = new self_and_iter(this, temp);
@@ -145,7 +157,8 @@ signal_impl::iterator_type signal_impl::insert(signal_impl::iterator_type i, slo
   return temp;
 }
 
-void signal_impl::sweep()
+void
+signal_impl::sweep()
 {
   // The deletion of a slot may cause the deletion of a signal_base,
   // a decrementation of ref_count_, and the deletion of this.
@@ -155,14 +168,17 @@ void signal_impl::sweep()
   deferred_ = false;
   auto i = slots_.begin();
   while (i != slots_.end())
+  {
     if ((*i).empty())
       i = slots_.erase(i);
     else
       ++i;
+  }
 }
 
-//static
-void signal_impl::notify(notifiable* d)
+// static
+void
+signal_impl::notify(notifiable* d)
 {
   std::unique_ptr<self_and_iter> si(static_cast<self_and_iter*>(d));
 
@@ -174,28 +190,25 @@ void signal_impl::notify(notifiable* d)
     signal_exec exec(si->self_);
     si->self_->slots_.erase(si->iter_);
   }
-  else                           // This is occuring during signal emission or slot erasure.
-    si->self_->deferred_ = true; // => sweep() will be called from ~signal_exec() after signal emission.
-                                 // This is safer because we don't have to care about our
-                                 // iterators in emit(), clear(), and erase().
+  else // This is occuring during signal emission or slot erasure.
+    si->self_->deferred_ =
+      true; // => sweep() will be called from ~signal_exec() after signal emission.
+  // This is safer because we don't have to care about our
+  // iterators in emit(), clear(), and erase().
 }
 
 } /* namespace internal */
 
-signal_base::signal_base() noexcept
-: impl_(nullptr)
-{}
+signal_base::signal_base() noexcept : impl_(nullptr)
+{
+}
 
-signal_base::signal_base(const signal_base& src) noexcept
-: trackable(),
-  impl_(src.impl())
+signal_base::signal_base(const signal_base& src) noexcept : trackable(), impl_(src.impl())
 {
   impl_->reference();
 }
 
-signal_base::signal_base(signal_base&& src)
-: trackable(std::move(src)),
-  impl_(std::move(src.impl_))
+signal_base::signal_base(signal_base&& src) : trackable(std::move(src)), impl_(std::move(src.impl_))
 {
   src.impl_ = nullptr;
 }
@@ -208,62 +221,74 @@ signal_base::~signal_base()
   }
 }
 
-void signal_base::clear()
+void
+signal_base::clear()
 {
   if (impl_)
     impl_->clear();
 }
 
-signal_base::size_type signal_base::size() const noexcept
+signal_base::size_type
+signal_base::size() const noexcept
 {
   return (impl_ ? impl_->size() : 0);
 }
 
-bool signal_base::blocked() const noexcept
+bool
+signal_base::blocked() const noexcept
 {
   return (impl_ ? impl_->blocked() : true);
 }
 
-void signal_base::block(bool should_block) noexcept
+void
+signal_base::block(bool should_block) noexcept
 {
   if (impl_)
     impl_->block(should_block);
 }
 
-void signal_base::unblock() noexcept
+void
+signal_base::unblock() noexcept
 {
   if (impl_)
     impl_->block(false);
 }
 
-signal_base::iterator_type signal_base::connect(const slot_base& slot_)
+signal_base::iterator_type
+signal_base::connect(const slot_base& slot_)
 {
   return impl()->connect(slot_);
 }
 
-signal_base::iterator_type signal_base::connect(slot_base&& slot_)
+signal_base::iterator_type
+signal_base::connect(slot_base&& slot_)
 {
   return impl()->connect(std::move(slot_));
 }
 
-signal_base::iterator_type signal_base::insert(iterator_type i, const slot_base& slot_)
+signal_base::iterator_type
+signal_base::insert(iterator_type i, const slot_base& slot_)
 {
   return impl()->insert(i, slot_);
 }
 
-signal_base::iterator_type signal_base::insert(iterator_type i, slot_base&& slot_)
+signal_base::iterator_type
+signal_base::insert(iterator_type i, slot_base&& slot_)
 {
   return impl()->insert(i, std::move(slot_));
 }
 
-signal_base::iterator_type signal_base::erase(iterator_type i)
+signal_base::iterator_type
+signal_base::erase(iterator_type i)
 {
   return impl()->erase(i);
 }
 
-signal_base& signal_base::operator=(const signal_base& src)
+signal_base&
+signal_base::operator=(const signal_base& src)
 {
-  if (src.impl_ == impl_) return *this;
+  if (src.impl_ == impl_)
+    return *this;
 
   if (impl_)
   {
@@ -275,9 +300,11 @@ signal_base& signal_base::operator=(const signal_base& src)
   return *this;
 }
 
-signal_base& signal_base::operator=(signal_base&& src)
+signal_base&
+signal_base::operator=(signal_base&& src)
 {
-  if (src.impl_ == impl_) return *this;
+  if (src.impl_ == impl_)
+    return *this;
 
   if (impl_)
   {
@@ -291,11 +318,13 @@ signal_base& signal_base::operator=(signal_base&& src)
   return *this;
 }
 
-internal::signal_impl* signal_base::impl() const
+internal::signal_impl*
+signal_base::impl() const
 {
-  if (!impl_) {
+  if (!impl_)
+  {
     impl_ = new internal::signal_impl;
-    impl_->reference();  // start with a reference count of 1
+    impl_->reference(); // start with a reference count of 1
   }
   return impl_;
 }
index bf79dd5..8571154 100644 (file)
@@ -58,41 +58,47 @@ struct SIGC_API signal_impl : public notifiable
   signal_impl(signal_impl&& src) = delete;
   signal_impl& operator=(signal_impl&& src) = delete;
 
-  // only MSVC needs this to guarantee that all new/delete are executed from the DLL module
+// only MSVC needs this to guarantee that all new/delete are executed from the DLL module
 #ifdef SIGC_NEW_DELETE_IN_LIBRARY_ONLY
   void* operator new(size_t size_);
   void operator delete(void* p);
 #endif
 
   /// Increments the reference counter.
-  inline void reference() noexcept
-    { ++ref_count_; }
+  inline void reference() noexcept { ++ref_count_; }
 
   /// Increments the reference and execution counter.
   inline void reference_exec() noexcept
-    { ++ref_count_; ++exec_count_; }
+  {
+    ++ref_count_;
+    ++exec_count_;
+  }
 
   /** Decrements the reference counter.
    * The object is deleted when the reference counter reaches zero.
    */
   inline void unreference()
-    { if (!(--ref_count_)) delete this; }
+  {
+    if (!(--ref_count_))
+      delete this;
+  }
 
   /** Decrements the reference and execution counter.
    * Invokes sweep() if the execution counter reaches zero and the
    * removal of one or more slots has been deferred.
    */
   inline void unreference_exec()
-    {
-      if (!(--ref_count_)) delete this;
-      else if (!(--exec_count_) && deferred_) sweep();
-    }
+  {
+    if (!(--ref_count_))
+      delete this;
+    else if (!(--exec_count_) && deferred_)
+      sweep();
+  }
 
   /** Returns whether the list of slots is empty.
    * @return @p true if the list of slots is empty.
    */
-  inline bool empty() const noexcept
-    { return slots_.empty(); }
+  inline bool empty() const noexcept { return slots_.empty(); }
 
   /// Empties the list of slots.
   void clear();
@@ -170,6 +176,11 @@ struct SIGC_API signal_impl : public notifiable
    */
   static void notify(notifiable* d);
 
+public:
+  /// The list of slots.
+  std::list<slot_base> slots_;
+
+private:
   /** Reference counter.
    * The object is destroyed when @em ref_count_ reaches zero.
    */
@@ -182,27 +193,26 @@ struct SIGC_API signal_impl : public notifiable
 
   /// Indicates whether the execution of sweep() is being deferred.
   bool deferred_;
-
-  /// The list of slots.
-  std::list<slot_base> slots_;
 };
 
 /// Exception safe sweeper for cleaning up invalid slots on the slot list.
 struct SIGC_API signal_exec
 {
-  /// The parent sigc::signal_impl object.
-  signal_impl* sig_;
-
   /** Increments the reference and execution counter of the parent sigc::signal_impl object.
    * @param sig The parent sigc::signal_impl object.
    */
-  inline signal_exec(const signal_impl* sig) noexcept
-    : sig_(const_cast<signal_impl*>(sig) )
-    { sig_->reference_exec(); }
+  inline signal_exec(const signal_impl* sig) noexcept : sig_(const_cast<signal_impl*>(sig))
+  {
+    sig_->reference_exec();
+  }
 
   /// Decrements the reference and execution counter of the parent sigc::signal_impl object.
-  inline ~signal_exec()
-    { sig_->unreference_exec(); }
+  inline ~signal_exec() { sig_->unreference_exec(); }
+
+protected:
+  /// The parent sigc::signal_impl object.
+  signal_impl* sig_;
+
 };
 
 /** Temporary slot list used during signal emission.
@@ -219,15 +229,12 @@ struct temp_slot_list
   using iterator = signal_impl::iterator_type;
   using const_iterator = signal_impl::const_iterator_type;
 
-  temp_slot_list(slot_list &slots) : slots_(slots)
+  temp_slot_list(slot_listslots) : slots_(slots)
   {
     placeholder = slots_.insert(slots_.end(), slot_base());
   }
 
-  ~temp_slot_list()
-  {
-    slots_.erase(placeholder);
-  }
+  ~temp_slot_list() { slots_.erase(placeholder); }
 
   iterator begin() { return slots_.begin(); }
   iterator end() { return placeholder; }
@@ -235,15 +242,15 @@ struct temp_slot_list
   const_iterator end() const { return placeholder; }
 
 private:
-  slot_list &slots_;
+  slot_listslots_;
   slot_list::iterator placeholder;
 };
-  
-} /* namespace internal */
 
+} /* namespace internal */
 
 /** @defgroup signal Signals
- * Use sigc::signal::connect() with sigc::mem_fun() and sigc::ptr_fun() to connect a method or function with a signal.
+ * Use sigc::signal::connect() with sigc::mem_fun() and sigc::ptr_fun() to connect a method or
+ * function with a signal.
  *
  * @code
  * signal_clicked.connect( sigc::mem_fun(*this, &MyWindow::on_clicked) );
@@ -319,8 +326,7 @@ struct SIGC_API signal_base : public trackable
   /** Returns whether the list of slots is empty.
    * @return @p true if the list of slots is empty.
    */
-  inline bool empty() const noexcept
-    { return (!impl_ || impl_->empty()); }
+  inline bool empty() const noexcept { return (!impl_ || impl_->empty()); }
 
   /// Empties the list of slots.
   void clear();
@@ -411,6 +417,6 @@ protected:
   mutable internal::signal_impl* impl_;
 };
 
-} //namespace sigc
+} // namespace sigc
 
 #endif /* _SIGC_SIGNAL_BASE_H_ */
index 7c492ea..8cbef82 100644 (file)
 namespace sigc
 {
 
-trackable::trackable() noexcept
-: callback_list_(nullptr)
-{}
+trackable::trackable() noexcept : callback_list_(nullptr)
+{
+}
 
 /* Don't copy the notification list.
    The objects watching src don't need to be notified when the new object dies. */
-trackable::trackable(const trackable& /*src*/) noexcept
-: callback_list_(nullptr)
-{}
+trackable::trackable(const trackable& /*src*/) noexcept : callback_list_(nullptr)
+{
+}
 
 // Don't move the notification list.
 // The objects watching src don't need to be notified when the new object dies.
@@ -38,25 +38,26 @@ trackable::trackable(const trackable& /*src*/) noexcept
 //
 // If trackable's move constructor is modified, check if Glib::Object's
 // move constructor should be modified similarly.
-trackable::trackable(trackable&& src)
-: callback_list_(nullptr)
+trackable::trackable(trackable&& src) : callback_list_(nullptr)
 {
   src.notify_callbacks();
 }
 
-trackable& trackable::operator=(const trackable& src)
+trackable&
+trackable::operator=(const trackable& src)
 {
-  if(this != &src)
-    notify_callbacks(); //Make sure that we have finished with existing stuff before replacing it.
-  
+  if (this != &src)
+    notify_callbacks(); // Make sure that we have finished with existing stuff before replacing it.
+
   return *this;
 }
 
-trackable& trackable::operator=(trackable&& src)
+trackable&
+trackable::operator=(trackable&& src)
 {
-  if(this != &src)
+  if (this != &src)
   {
-    notify_callbacks(); //Make sure that we have finished with existing stuff before replacing it.
+    notify_callbacks(); // Make sure that we have finished with existing stuff before replacing it.
     src.notify_callbacks(); // src probably becomes useless.
   }
   return *this;
@@ -67,25 +68,29 @@ trackable::~trackable()
   notify_callbacks();
 }
 
-void trackable::add_destroy_notify_callback(notifiable* data, func_destroy_notify func) const
+void
+trackable::add_destroy_notify_callback(notifiable* data, func_destroy_notify func) const
 {
   callback_list()->add_callback(data, func);
 }
 
-void trackable::remove_destroy_notify_callback(notifiable* data) const
+void
+trackable::remove_destroy_notify_callback(notifiable* data) const
 {
   callback_list()->remove_callback(data);
 }
 
-void trackable::notify_callbacks()
+void
+trackable::notify_callbacks()
 {
   if (callback_list_)
-    delete callback_list_; //This invokes all of the callbacks.
+    delete callback_list_; // This invokes all of the callbacks.
 
   callback_list_ = nullptr;
 }
 
-internal::trackable_callback_list* trackable::callback_list() const
+internal::trackable_callback_list*
+trackable::callback_list() const
 {
   if (!callback_list_)
     callback_list_ = new internal::trackable_callback_list;
@@ -93,7 +98,6 @@ internal::trackable_callback_list* trackable::callback_list() const
   return callback_list_;
 }
 
-      
 namespace internal
 {
 
@@ -102,41 +106,50 @@ trackable_callback_list::~trackable_callback_list()
   clearing_ = true;
 
   for (auto& callback : callbacks_)
+  {
     if (callback.func_)
       callback.func_(callback.data_);
+  }
 }
 
-void trackable_callback_list::add_callback(notifiable* data, func_destroy_notify func)
+void
+trackable_callback_list::add_callback(notifiable* data, func_destroy_notify func)
 {
-  if (!clearing_)  // TODO: Is it okay to silently ignore attempts to add dependencies when the list is being cleared?
-                   //       I'd consider this a serious application bug, since the app is likely to segfault.
-                   //       But then, how should we handle it? Throw an exception? Martin.
+  // TODO: Is it okay to silently ignore attempts to add dependencies when the list
+  // is being cleared?
+  // I'd consider this a serious application bug, since the app is likely to segfault.
+  // But then, how should we handle it? Throw an exception? Martin.
+  if (!clearing_)
     callbacks_.push_back(trackable_callback(data, func));
 }
 
-void trackable_callback_list::clear()
+void
+trackable_callback_list::clear()
 {
   clearing_ = true;
 
   for (auto& callback : callbacks_)
-    if (callback.func_) 
+  {
+    if (callback.func_)
       callback.func_(callback.data_);
+  }
 
   callbacks_.clear();
 
   clearing_ = false;
 }
 
-void trackable_callback_list::remove_callback(notifiable* data)
+void
+trackable_callback_list::remove_callback(notifiable* data)
 {
-  for (callback_list::iterator i = callbacks_.begin(); i != callbacks_.end(); ++i)
+  for (auto i = callbacks_.begin(); i != callbacks_.end(); ++i)
   {
     auto& callback = *i;
     if (callback.data_ == data && callback.func_ != nullptr)
     {
-      //Don't remove a list element while the list is being cleared.
-      //It could invalidate the iterator in ~trackable_callback_list() or clear().
-      //But it may be necessary to invalidate the callback. See bug 589202.
+      // Don't remove a list element while the list is being cleared.
+      // It could invalidate the iterator in ~trackable_callback_list() or clear().
+      // But it may be necessary to invalidate the callback. See bug 589202.
       if (clearing_)
         callback.func_ = nullptr;
       else
index 26ee492..c5490bb 100644 (file)
 #include <list>
 #include <sigc++config.h>
 
-namespace sigc {
+namespace sigc
+{
 
 struct notifiable;
 
-namespace internal {
-
-using func_destroy_notify = void (*) (notifiable* data);
+namespace internal
+{
 
+using func_destroy_notify = void (*)(notifiable* data);
 
 /** Destroy notification callback.
  * A destroy notification callback consists of a data pointer and a
@@ -40,8 +41,9 @@ struct SIGC_API trackable_callback
 {
   notifiable* data_;
   func_destroy_notify func_;
-  trackable_callback(notifiable* data, func_destroy_notify func) noexcept
-    : data_(data), func_(func) {}
+  trackable_callback(notifiable* data, func_destroy_notify func) noexcept : data_(data), func_(func)
+  {
+  }
 };
 
 /** Callback list.
@@ -55,7 +57,7 @@ struct SIGC_API trackable_callback_list
   /** Add a callback function.
    * @param data Data that will be sent as a parameter to teh callback function.
    * @param func The callback function.
-   * 
+   *
    */
   void add_callback(notifiable* data, func_destroy_notify func);
 
@@ -68,8 +70,7 @@ struct SIGC_API trackable_callback_list
    */
   void clear();
 
-  trackable_callback_list()
-    : clearing_(false) {}
+  trackable_callback_list() : clearing_(false) {}
 
   trackable_callback_list(const trackable_callback_list& src) = delete;
   trackable_callback_list& operator=(const trackable_callback_list& src) = delete;
@@ -83,18 +84,16 @@ struct SIGC_API trackable_callback_list
 private:
   using callback_list = std::list<trackable_callback>;
   callback_list callbacks_;
-  bool          clearing_;
+  bool clearing_;
 };
 
 } /* namespace internal */
 
-
 struct SIGC_API notifiable
 {
   using func_destroy_notify = internal::func_destroy_notify;
 };
 
-
 /** Base class for objects with auto-disconnection.
  * trackable must be inherited when objects shall automatically
  * invalidate slots referring to them on destruction.
@@ -134,12 +133,12 @@ struct SIGC_API trackable : public notifiable
 
   ~trackable();
 
-  /*virtual ~trackable() {} */  /* we would need a virtual dtor for users
-                                   who insist on using "trackable*" as
-                                   pointer type for their own derived objects */
+  /*virtual ~trackable() {} */ /* we would need a virtual dtor for users
+                                  who insist on using "trackable*" as
+                                  pointer type for their own derived objects */
 
   using func_destroy_notify = internal::func_destroy_notify;
-  
+
   /** Add a callback that is executed (notified) when the trackable object is detroyed.
    * @param data Passed into func upon notification.
    * @param func Callback executed upon destruction of the object.
index 05d6bb2..e0c17f7 100644 (file)
 #include <type_traits>
 #include <utility>
 
-namespace sigc {
+namespace sigc
+{
 
-namespace internal {
+namespace internal
+{
 
 /**
  * Get the type of a tuple without the first item.
@@ -39,11 +41,11 @@ struct tuple_type_cdr<std::tuple<H, T...>>
   using type = std::tuple<T...>;
 };
 
-namespace detail {
+namespace detail
+{
 
 template <typename T, std::size_t... I>
-constexpr
-decltype(auto)
+constexpr decltype(auto)
 tuple_cdr_impl(T&& t, std::index_sequence<0, I...>)
 {
   using cdr = typename tuple_type_cdr<std::decay_t<T>>::type;
@@ -57,10 +59,10 @@ tuple_cdr_impl(T&& t, std::index_sequence<0, I...>)
  * This is analogous to std::tuple_cat().
  */
 template <typename T>
-constexpr
-decltype(auto)
-tuple_cdr(T&& t) {
-  //We use std::decay_t<> because tuple_size is not defined for references.
+constexpr decltype(auto)
+tuple_cdr(T&& t)
+{
+  // We use std::decay_t<> because tuple_size is not defined for references.
   constexpr auto size = std::tuple_size<std::decay_t<T>>::value;
 
   static_assert(size != 0, "tuple size must be non-zero");
@@ -72,4 +74,4 @@ tuple_cdr(T&& t) {
 
 } // namespace sigc
 
-#endif //SIGC_TUPLE_UTILS_TUPLE_CDR_H
+#endif // SIGC_TUPLE_UTILS_TUPLE_CDR_H
index b31ad7c..6eeac12 100644 (file)
 
 #include <sigc++/tuple-utils/tuple_cdr.h>
 
-namespace sigc {
+namespace sigc
+{
 
-namespace internal {
+namespace internal
+{
 
-namespace detail {
+namespace detail
+{
 
 template <typename T, std::size_t remove_from_start>
-struct tuple_end_impl {
-  constexpr
-  static
-  decltype(auto) // typename tuple_type_end<T, size - remove_from_start>::type
-  tuple_end(T&& t) {
+struct tuple_end_impl
+{
+  constexpr static decltype(auto) // typename tuple_type_end<T, size - remove_from_start>::type
+    tuple_end(T&& t)
+  {
     static_assert(remove_from_start > 0, "remove_from_start must be more than zero.");
 
     using cdr = typename tuple_type_cdr<std::decay_t<T>>::type;
-    return tuple_end_impl<cdr, remove_from_start - 1>::tuple_end(
-      tuple_cdr(std::forward<T>(t)));
+    return tuple_end_impl<cdr, remove_from_start - 1>::tuple_end(tuple_cdr(std::forward<T>(t)));
   }
 };
 
 template <typename T>
-struct tuple_end_impl<T, 1> {
-  constexpr
-  static
-  decltype(auto)
-  tuple_end(T&& t) {
-    return tuple_cdr(std::forward<T>(t));
-  }
+struct tuple_end_impl<T, 1>
+{
+  constexpr static decltype(auto) tuple_end(T&& t) { return tuple_cdr(std::forward<T>(t)); }
 };
 
 template <typename T>
-struct tuple_end_impl<T, 0> {
-  constexpr
-  static
-  decltype(auto)
-  tuple_end(T&& t) {
-    return std::forward<T>(t);
-  }
+struct tuple_end_impl<T, 0>
+{
+  constexpr static decltype(auto) tuple_end(T&& t) { return std::forward<T>(t); }
 };
 
 } // detail namespace
@@ -66,10 +60,10 @@ struct tuple_end_impl<T, 0> {
  * Get the tuple with the last @a len items of the original.
  */
 template <std::size_t len, typename T>
-constexpr
-decltype(auto) // typename tuple_type_end<T, len>::type
-  tuple_end(T&& t) {
-  //We use std::decay_t<> because tuple_size is not defined for references.
+constexpr decltype(auto) // typename tuple_type_end<T, len>::type
+  tuple_end(T&& t)
+{
+  // We use std::decay_t<> because tuple_size is not defined for references.
   constexpr auto size = std::tuple_size<std::decay_t<T>>::value;
   static_assert(len <= size, "The tuple size must be less than or equal to the length.");
   constexpr auto size_start = size - len;
@@ -80,4 +74,4 @@ decltype(auto) // typename tuple_type_end<T, len>::type
 
 } // namespace sigc
 
-#endif //SIGC_TUPLE_UTILS_TUPLE_END_H
+#endif // SIGC_TUPLE_UTILS_TUPLE_END_H
index c66b45e..15e8a20 100644 (file)
 
 #include <tuple>
 
-namespace sigc {
+namespace sigc
+{
 
-namespace internal {
+namespace internal
+{
 
-namespace detail {
+namespace detail
+{
 
-template <template <typename> class T_visitor, std::size_t size_from_index,
-  typename... T_extras>
-struct tuple_for_each_impl {
+template <template <typename> class T_visitor, std::size_t size_from_index, typename... T_extras>
+struct tuple_for_each_impl
+{
   template <typename T>
-  constexpr
-  static
-  void
-  tuple_for_each(T&& t, T_extras&&... extras) {
-    //We use std::decay_t<> because tuple_size is not defined for references.
+  constexpr static void tuple_for_each(T&& t, T_extras&&... extras)
+  {
+    // We use std::decay_t<> because tuple_size is not defined for references.
     constexpr auto size = std::tuple_size<std::decay_t<T>>::value;
     static_assert(size > 1, "size must be more than 0.");
 
@@ -50,13 +51,12 @@ struct tuple_for_each_impl {
 };
 
 template <template <typename> class T_visitor, typename... T_extras>
-struct tuple_for_each_impl<T_visitor, 1, T_extras...> {
+struct tuple_for_each_impl<T_visitor, 1, T_extras...>
+{
   template <typename T>
-  constexpr
-  static
-  void
-  tuple_for_each(T&& t, T_extras&&... extras) {
-    //We use std::decay_t<> because tuple_size is not defined for references.
+  constexpr static void tuple_for_each(T&& t, T_extras&&... extras)
+  {
+    // We use std::decay_t<> because tuple_size is not defined for references.
     constexpr auto size = std::tuple_size<std::decay_t<T>>::value;
     static_assert(size > 0, "size must be more than 0.");
 
@@ -64,24 +64,23 @@ struct tuple_for_each_impl<T_visitor, 1, T_extras...> {
     static_assert(index >= 0, "unexpected index.");
 
     using element_type = typename std::tuple_element<index, std::decay_t<T>>::type;
-    T_visitor<element_type>::visit(std::get<index>(std::forward<T>(t)), std::forward<T_extras>(extras)...);
+    T_visitor<element_type>::visit(
+      std::get<index>(std::forward<T>(t)), std::forward<T_extras>(extras)...);
   }
 };
 
 template <template <typename> class T_visitor, typename... T_extras>
-struct tuple_for_each_impl<T_visitor, 0, T_extras...> {
+struct tuple_for_each_impl<T_visitor, 0, T_extras...>
+{
   template <typename T>
-  constexpr
-  static
-  void
-  tuple_for_each(T&& /* t */, T_extras&&... /* extras */) {
-    //Do nothing because the tuple has no elements.
+  constexpr static void tuple_for_each(T&& /* t */, T_extras&&... /* extras */)
+  {
+    // Do nothing because the tuple has no elements.
   }
 };
 
 } // detail namespace
 
-
 /**
  * Call the @e T_Visitor functors visit() method for each element,
  * from the first to the last.
@@ -94,13 +93,14 @@ struct tuple_for_each_impl<T_visitor, 0, T_extras...> {
  * @param extras Any extra arguments to pass to @e T_Visitor's visit() method.
  */
 template <template <typename> class T_visitor, typename T, typename... T_extras>
-constexpr
-void
-tuple_for_each(T&& t, T_extras&&... extras) {
-  //We use std::decay_t<> because tuple_size is not defined for references.
+constexpr void
+tuple_for_each(T&& t, T_extras&&... extras)
+{
+  // We use std::decay_t<> because tuple_size is not defined for references.
   constexpr auto size = std::tuple_size<std::decay_t<T>>::value;
 
-  if(size == 0) {
+  if (size == 0)
+  {
     return;
   }
 
@@ -112,4 +112,4 @@ tuple_for_each(T&& t, T_extras&&... extras) {
 
 } // namespace sigc
 
-#endif //SIGC_TUPLE_UTILS_TUPLE_FOR_EACH_H
+#endif // SIGC_TUPLE_UTILS_TUPLE_FOR_EACH_H
index 86b6066..06491ce 100644 (file)
 #include <tuple>
 #include <utility>
 
-namespace sigc {
+namespace sigc
+{
 
-namespace internal {
+namespace internal
+{
 
-namespace detail {
+namespace detail
+{
 
 template <typename T, typename Seq>
 struct tuple_type_start_impl;
 
 template <typename T, std::size_t... I>
-struct tuple_type_start_impl<T, std::index_sequence<I...>> {
+struct tuple_type_start_impl<T, std::index_sequence<I...>>
+{
   using type = std::tuple<typename std::tuple_element<I, T>::type...>;
 };
 
@@ -41,20 +45,21 @@ struct tuple_type_start_impl<T, std::index_sequence<I...>> {
  * Get the type of a tuple with just the first @len items.
  */
 template <typename T, std::size_t len>
-struct tuple_type_start
-  : detail::tuple_type_start_impl<T, std::make_index_sequence<len>> {};
+struct tuple_type_start : detail::tuple_type_start_impl<T, std::make_index_sequence<len>>
+{
+};
 
-namespace detail {
+namespace detail
+{
 
 template <typename T, typename Seq>
 struct tuple_start_impl;
 
 template <typename T, std::size_t... I>
-struct tuple_start_impl<T, std::index_sequence<I...>> {
-  static
-  constexpr
-  decltype(auto)
-  tuple_start(T&& t) {
+struct tuple_start_impl<T, std::index_sequence<I...>>
+{
+  static constexpr decltype(auto) tuple_start(T&& t)
+  {
     constexpr auto size = std::tuple_size<std::decay_t<T>>::value;
     constexpr auto len = sizeof...(I);
     static_assert(len <= size, "The tuple size must be less than or equal to the length.");
@@ -70,10 +75,10 @@ struct tuple_start_impl<T, std::index_sequence<I...>> {
  * Get the tuple with the last @a len items of the original.
  */
 template <std::size_t len, typename T>
-constexpr
-decltype(auto) // typename tuple_type_end<T, len>::type
-tuple_start(T&& t) {
-  //We use std::decay_t<> because tuple_size is not defined for references.
+constexpr decltype(auto) // typename tuple_type_end<T, len>::type
+  tuple_start(T&& t)
+{
+  // We use std::decay_t<> because tuple_size is not defined for references.
   constexpr auto size = std::tuple_size<std::decay_t<T>>::value;
   static_assert(len <= size, "The tuple size must be less than or equal to the length.");
 
@@ -85,4 +90,4 @@ tuple_start(T&& t) {
 
 } // namespace sigc
 
-#endif //SIGC_TUPLE_UTILS_TUPLE_START_H
+#endif // SIGC_TUPLE_UTILS_TUPLE_START_H
index cff9bca..ff7b6a4 100644 (file)
 #include <sigc++/tuple-utils/tuple_start.h>
 #include <type_traits>
 
-namespace sigc {
+namespace sigc
+{
 
-namespace internal {
+namespace internal
+{
 
-namespace detail {
+namespace detail
+{
 
 template <template <typename> class T_transformer, std::size_t size_from_index>
-struct tuple_transform_each_impl {
+struct tuple_transform_each_impl
+{
   // TODO: Avoid the need to pass t_original all the way into the recursion?
   template <typename T_current, typename T_original>
-  constexpr
-  static decltype(auto)
-  tuple_transform_each(T_current&& t, T_original& t_original) {
-    //We use std::decay_t<> because tuple_size is not defined for references.
+  constexpr static decltype(auto) tuple_transform_each(T_current&& t, T_original& t_original)
+  {
+    // We use std::decay_t<> because tuple_size is not defined for references.
     constexpr auto size = std::tuple_size<std::decay_t<T_current>>::value;
     static_assert(size > 1, "size must be more than 0.");
 
@@ -46,8 +49,8 @@ struct tuple_transform_each_impl {
     using from_element_type = typename std::tuple_element<index, std::decay_t<T_original>>::type;
     using to_element_type = typename std::result_of<decltype (
       &T_transformer<from_element_type>::transform)(from_element_type&)>::type;
-    const auto t_element =
-      std::tuple<to_element_type>(T_transformer<from_element_type>::transform(std::get<index>(t_original)));
+    const auto t_element = std::tuple<to_element_type>(
+      T_transformer<from_element_type>::transform(std::get<index>(t_original)));
 
     const auto t_start = tuple_start<index>(std::forward<T_current>(t));
 
@@ -60,19 +63,18 @@ struct tuple_transform_each_impl {
     const auto t_end = tuple_end<size - index - 1>(t);
 
     auto t_with_transformed_element = std::tuple_cat(t_start, t_element, t_end);
-    return tuple_transform_each_impl<T_transformer,
-      size_from_index - 1>::tuple_transform_each(t_with_transformed_element, t_original);
+    return tuple_transform_each_impl<T_transformer, size_from_index - 1>::tuple_transform_each(
+      t_with_transformed_element, t_original);
   }
 };
 
 template <template <typename> class T_transformer>
-struct tuple_transform_each_impl<T_transformer, 1> {
+struct tuple_transform_each_impl<T_transformer, 1>
+{
   template <typename T_current, typename T_original>
-  constexpr
-  static
-  decltype(auto)
-  tuple_transform_each(T_current&& t, T_original& t_original) {
-    //We use std::decay_t<> because tuple_size is not defined for references.
+  constexpr static decltype(auto) tuple_transform_each(T_current&& t, T_original& t_original)
+  {
+    // We use std::decay_t<> because tuple_size is not defined for references.
     constexpr auto size = std::tuple_size<std::decay_t<T_current>>::value;
     static_assert(size > 0, "size must be more than 0.");
 
@@ -82,8 +84,8 @@ struct tuple_transform_each_impl<T_transformer, 1> {
     using from_element_type = typename std::tuple_element<index, T_original>::type;
     using to_element_type = typename std::result_of<decltype (
       &T_transformer<from_element_type>::transform)(from_element_type&)>::type;
-    const auto tuple_element =
-      std::tuple<to_element_type>(T_transformer<from_element_type>::transform(std::get<index>(t_original)));
+    const auto tuple_element = std::tuple<to_element_type>(
+      T_transformer<from_element_type>::transform(std::get<index>(t_original)));
 
     const auto tuple_rest = tuple_start<size - 1>(std::forward<T_current>(t));
     return std::tuple_cat(tuple_rest, tuple_element);
@@ -91,14 +93,13 @@ struct tuple_transform_each_impl<T_transformer, 1> {
 };
 
 template <template <typename> class T_transformer>
-struct tuple_transform_each_impl<T_transformer, 0> {
+struct tuple_transform_each_impl<T_transformer, 0>
+{
   template <typename T_current, typename T_original>
-  constexpr
-  static
-  decltype(auto)
-  tuple_transform_each(T_current&& t, T_original& /* t_original */) {
-      //Do nothing because the tuple has no elements.
-      return std::forward<T_current>(t);
+  constexpr static decltype(auto) tuple_transform_each(T_current&& t, T_original& /* t_original */)
+  {
+    // Do nothing because the tuple has no elements.
+    return std::forward<T_current>(t);
   }
 };
 
@@ -109,18 +110,18 @@ struct tuple_transform_each_impl<T_transformer, 0> {
  * in the original tuple.
  */
 template <template <typename> class T_transformer, typename T>
-constexpr
-decltype(auto)
-tuple_transform_each(T&& t) {
-  //We use std::decay_t<> because tuple_size is not defined for references.
+constexpr decltype(auto)
+tuple_transform_each(T&& t)
+{
+  // We use std::decay_t<> because tuple_size is not defined for references.
   constexpr auto size = std::tuple_size<std::decay_t<T>>::value;
 
-  return detail::tuple_transform_each_impl<T_transformer,
-    size>::tuple_transform_each(std::forward<T>(t), t);
+  return detail::tuple_transform_each_impl<T_transformer, size>::tuple_transform_each(
+    std::forward<T>(t), t);
 }
 
 } // namespace internal
 
 } // namespace sigc
 
-#endif //SIGC_TUPLE_UTILS_TUPLE_TRANSFORM_EACH_H
+#endif // SIGC_TUPLE_UTILS_TUPLE_TRANSFORM_EACH_H
index fe67e3c..9eb1af9 100644 (file)
@@ -21,8 +21,8 @@
 
 #include <sigc++config.h>
 
-
-namespace sigc {
+namespace sigc
+{
 
 template <class T_type>
 struct type_trait
@@ -52,17 +52,17 @@ struct type_trait<const T_type&>
   using take = const T_type&;
 };
 
-template<>
+template <>
 struct type_trait<void>
 {
   using pass = void;
   using take = void;
 };
 
-template<typename T>
+template <typename T>
 using type_trait_pass_t = typename type_trait<T>::pass;
 
-template<typename T>
+template <typename T>
 using type_trait_take_t = typename type_trait<T>::take;
 
 } /* namespace sigc */
index 487477a..d310821 100644 (file)
 #include <sigc++/type_traits.h>
 #include <type_traits>
 
-namespace sigc {
+namespace sigc
+{
 
 #ifndef DOXYGEN_SHOULD_SKIP_THIS
-namespace internal {
+namespace internal
+{
+
+template <class Base, class Derived>
+constexpr bool is_base_of_or_same_v =
+  std::is_base_of<std::decay_t<Base>, std::decay_t<Derived>>::value ||
+    std::is_same<std::decay_t<Base>, std::decay_t<Derived>>::value;
 
-//This should really be an inner class of limit_derived_target, without the T_limit template type,
-//But the SUN CC 5.7 (not earlier versions) compiler finds it ambiguous when we specify a particular specialization of it.
-//and does not seem to allow us to tell it explicitly that it's an inner class.
+// This should really be an inner class of limit_derived_target, without the T_limit template type,
+// But the SUN CC 5.7 (not earlier versions) compiler finds it ambiguous when we specify a
+// particular specialization of it.
+// and does not seem to allow us to tell it explicitly that it's an inner class.
 template <bool I_derived, class T_type, class T_limit>
 struct with_type;
 
-//Specialization for I_derived = false
-template <class T_type, class T_limit> struct
-with_type<false, T_type, T_limit>
+// Specialization for I_derived = false
+template <class T_type, class T_limit>
+struct with_type<false, T_type, T_limit>
 {
   static void execute_(const T_type&, const T_limit&) {}
 };
 
-//Specialization for I_derived = true
+// Specialization for I_derived = true
 template <class T_type, class T_limit>
 struct with_type<true, T_type, T_limit>
 {
   static void execute_(const T_type& _A_type, const T_limit& _A_action)
-  { _A_action.action_(_A_type); }
+  {
+    _A_action.action_(_A_type);
+  }
 };
 
-
 /// Helper struct for visit_each_type().
 template <class T_target, class T_action>
 struct limit_derived_target
@@ -55,36 +64,38 @@ struct limit_derived_target
   using T_self = limit_derived_target<T_target, T_action>;
 
   template <class T_type>
-  void operator()(const T_type& _A_type) const
+  void operator()(T_type&& _A_type) const
   {
-    with_type<std::is_base_of<T_target, T_type>::value || std::is_same<T_target, T_type>::value, T_type, T_self>::execute_(_A_type, *this);
+    with_type<is_base_of_or_same_v<T_target, T_type>,
+      T_type, T_self>::execute_(std::forward<T_type>(_A_type), *this);
   }
 
-  limit_derived_target(const T_action& _A_action)
-  : action_(_A_action)
-  {}
+  explicit limit_derived_target(const T_action& _A_action) : action_(_A_action) {}
 
   T_action action_;
 };
 
-// Specialization for T_target pointer types, to provide a slightly different execute_() implementation.
+// Specialization for T_target pointer types, to provide a slightly different execute_()
+// implementation.
 
 template <bool I_derived, class T_type, class T_limit>
 struct with_type_pointer;
 
-//Specialization for I_derived = false
+// Specialization for I_derived = false
 template <class T_type, class T_limit>
 struct with_type_pointer<false, T_type, T_limit>
 {
- static void execute_(const T_type&, const T_limit&) {}
 static void execute_(const T_type&, const T_limit&) {}
 };
 
-//Specialization for I_derived = true
+// Specialization for I_derived = true
 template <class T_type, class T_limit>
 struct with_type_pointer<true, T_type, T_limit>
 {
   static void execute_(const T_type& _A_type, const T_limit& _A_action)
-  { _A_action.action_(&_A_type); }
+  {
+    _A_action.action_(&_A_type);
+  }
 };
 
 template <class T_target, class T_action>
@@ -93,14 +104,13 @@ struct limit_derived_target<T_target*, T_action>
   using T_self = limit_derived_target<T_target*, T_action>;
 
   template <class T_type>
-  void operator()(const T_type& _A_type) const
+  void operator()(T_type&& _A_type) const
   {
-    with_type_pointer<std::is_base_of<T_target, T_type>::value || std::is_same<T_target, T_type>::value, T_type, T_self>::execute_(_A_type, *this);
+    with_type_pointer<is_base_of_or_same_v<T_target, T_type>,
+      T_type, T_self>::execute_(std::forward<T_type>(_A_type), *this);
   }
 
-  limit_derived_target(const T_action& _A_action)
-  : action_(_A_action)
-  {}
+  explicit limit_derived_target(const T_action& _A_action) : action_(_A_action) {}
 
   T_action action_;
 };
@@ -115,7 +125,8 @@ struct limit_derived_target<T_target*, T_action>
 // (argument-dependent lookup), and therefore there is no risk that a visit_each() overload
 // in e.g. Boost is selected by mistake.
 
-/** sigc::visitor<T_functor>::do_visit_each() performs a functor on each of the targets of a functor.
+/** sigc::visitor<T_functor>::do_visit_each() performs a functor on each of the targets of a
+ * functor.
  * All unknown types just call @a _A_action on them.
  * Add specializations that specialize the @a T_functor argument for your own
  * functor types, so that subobjects get visited. This is needed to enable
@@ -166,8 +177,11 @@ struct visitor
  * @ingroup sigcfunctors
  */
 template <class T_action, class T_functor>
-void visit_each(const T_action& _A_action, const T_functor& _A_functor)
-{ sigc::visitor<T_functor>::do_visit_each(_A_action, _A_functor); }
+void
+visit_each(const T_action& _A_action, const T_functor& _A_functor)
+{
+  sigc::visitor<T_functor>::do_visit_each(_A_action, _A_functor);
+}
 
 /** This function performs a functor on each of the targets
  * of a functor limited to a restricted type.
@@ -175,29 +189,32 @@ void visit_each(const T_action& _A_action, const T_functor& _A_functor)
  * @ingroup sigcfunctors
  */
 template <class T_type, class T_action, class T_functor>
-void visit_each_type(const T_action& _A_action, const T_functor& _A_functor)
+void
+visit_each_type(const T_action& _A_action, const T_functor& _A_functor)
 {
   using type_limited_action = internal::limit_derived_target<T_type, T_action>;
 
   type_limited_action limited_action(_A_action);
 
-  //specifying the types of the template specialization prevents disconnection of bound trackable references (such as with std::ref()),
-  //probably because the visit_each<> specializations take various different template types,
-  //in various sequences, and we are probably specifying only a subset of them with this.
+  // specifying the types of the template specialization prevents disconnection of bound trackable
+  // references (such as with std::ref()),
+  // probably because the visit_each<> specializations take various different template types,
+  // in various sequences, and we are probably specifying only a subset of them with this.
   //
-  //But this is required by the AIX (and maybe IRIX MipsPro  and Tru64) compilers.
-  //I guess that std::ref() therefore does not work on those platforms. murrayc
+  // But this is required by the AIX (and maybe IRIX MipsPro  and Tru64) compilers.
+  // I guess that std::ref() therefore does not work on those platforms. murrayc
   // sigc::visit_each<type_limited_action, T_functor>(limited_action, _A_functor);
 
-  //g++ (even slightly old ones) is our primary platform, so we could use the non-crashing version.
-  //However, the explicit version also fixes a crash in a slightly more common case: http://bugzilla.gnome.org/show_bug.cgi?id=169225
-  //Users (and distributors) of libsigc++ on AIX (and maybe IRIX MipsPro and Tru64) do
-  //need to use the version above instead, to allow compilation.
+  // g++ (even slightly old ones) is our primary platform, so we could use the non-crashing version.
+  // However, the explicit version also fixes a crash in a slightly more common case:
+  // http://bugzilla.gnome.org/show_bug.cgi?id=169225
+  // Users (and distributors) of libsigc++ on AIX (and maybe IRIX MipsPro and Tru64) do
+  // need to use the version above instead, to allow compilation.
 
-  //Added 2014-03-20: The preceding comment probably does not apply any more,
-  //now when the visit_each<>() overloads have been replaced by visitor<> specializations.
-  //It's probably safe to add explicit template parameters on calls to visit_each(),
-  //visit_each_type() and visitor::do_visit_each(), if necessary.
+  // Added 2014-03-20: The preceding comment probably does not apply any more,
+  // now when the visit_each<>() overloads have been replaced by visitor<> specializations.
+  // It's probably safe to add explicit template parameters on calls to visit_each(),
+  // visit_each_type() and visitor::do_visit_each(), if necessary.
 
   sigc::visit_each(limited_action, _A_functor);
 }
index f339354..43cf2d7 100644 (file)
@@ -9,17 +9,18 @@ namespace
 {
 std::ostringstream result_stream;
 
-int ident(int i)
+int
+ident(int i)
 {
   return i;
 }
 
-template<typename T>
+template <typename T>
 struct min_accum
 {
   using result_type = T;
 
-  template<class I>
+  template <class I>
   typename std::iterator_traits<I>::value_type operator()(I i1, I i2)
   {
     return *std::min_element(i1, i2);
@@ -28,7 +29,8 @@ struct min_accum
 
 } // end anonymous namespace
 
-int main(int argc, char* argv[])
+int
+main(int argc, char* argv[])
 {
   auto util = TestUtilities::get_instance();
 
index 0e97f56..4e60136 100644 (file)
@@ -22,7 +22,7 @@ std::ostringstream result_stream;
 struct arithmetic_mean_accumulator
 {
   using result_type = double;
-  template<typename T_iterator>
+  template <typename T_iterator>
   double operator()(T_iterator first, T_iterator last) const
   {
     double value_ = 0;
@@ -33,11 +33,11 @@ struct arithmetic_mean_accumulator
   }
 };
 
-template<class Ret>
+template <class Ret>
 struct vector_accumulator
 {
   using result_type = std::vector<Ret>;
-  template<typename T_iterator>
+  template <typename T_iterator>
   result_type operator()(T_iterator first, T_iterator last) const
   {
     result_type vec;
@@ -47,14 +47,16 @@ struct vector_accumulator
   }
 };
 
-int foo(int i)
+int
+foo(int i)
 {
   const int result = 3 * i + 1;
   result_stream << "foo: " << result << ", ";
   return result;
 }
 
-int bar(double i)
+int
+bar(double i)
 {
   const int result = 5 * int(i) - 3;
   result_stream << "bar: " << result << ", ";
@@ -71,10 +73,11 @@ struct A : public sigc::trackable
   }
 };
 
-void test_empty_signal()
+void
+test_empty_signal()
 {
   sigc::signal<int(int)>::accumulated<arithmetic_mean_accumulator> sig;
-  sigc::signal<int(int)>::accumulated<vector_accumulator<int> > sig_vec;
+  sigc::signal<int(int)>::accumulated<vector_accumulator<int>> sig_vec;
 
   result_stream << "Result (empty slot list): " << sig(0);
   util->check_result(result_stream, "Result (empty slot list): -1");
@@ -83,7 +86,8 @@ void test_empty_signal()
   util->check_result(result_stream, "Vector result (empty slot list): empty");
 }
 
-void test_mean()
+void
+test_mean()
 {
   sigc::signal<int(int)>::accumulated<arithmetic_mean_accumulator> sig;
 
@@ -93,45 +97,46 @@ void test_mean()
   sig.connect(sigc::ptr_fun(&bar));
 
   double dres = sig(1);
-  result_stream << "Mean accumulator: Result (i=1): "
-                << std::fixed << std::setprecision(3) << dres;
-  util->check_result(result_stream,
-    "foo: 4, A::foo: 6, bar: 2, Mean accumulator: Result (i=1): 4.000");
+  result_stream << "Mean accumulator: Result (i=1): " << std::fixed << std::setprecision(3) << dres;
+  util->check_result(
+    result_stream, "foo: 4, A::foo: 6, bar: 2, Mean accumulator: Result (i=1): 4.000");
 
   dres = sig(11);
-  result_stream << "Mean accumulator: Plain Result (i=11): "
-                << std::fixed << std::setprecision(3) << dres;
-  util->check_result(result_stream,
-    "foo: 34, A::foo: 206, bar: 52, Mean accumulator: Plain Result (i=11): 97.333");
+  result_stream << "Mean accumulator: Plain Result (i=11): " << std::fixed << std::setprecision(3)
+                << dres;
+  util->check_result(
+    result_stream, "foo: 34, A::foo: 206, bar: 52, Mean accumulator: Plain Result (i=11): 97.333");
 }
 
-void test_vector_accumulator()
+void
+test_vector_accumulator()
 {
-  sigc::signal<int(int)>::accumulated<vector_accumulator<int> > sig_vec;
+  sigc::signal<int(int)>::accumulated<vector_accumulator<int>> sig_vec;
 
   A a;
   sig_vec.connect(sigc::ptr_fun(&foo));
   sig_vec.connect(sigc::mem_fun(a, &A::foo));
   sig_vec.connect(sigc::ptr_fun(&bar));
-  
+
   auto res1 = sig_vec(1);
   result_stream << "Vector accumulator: Result (i=1): ";
   for (auto num : res1)
     result_stream << num << " ";
-  util->check_result(result_stream,
-    "foo: 4, A::foo: 6, bar: 2, Vector accumulator: Result (i=1): 4 6 2 ");
+  util->check_result(
+    result_stream, "foo: 4, A::foo: 6, bar: 2, Vector accumulator: Result (i=1): 4 6 2 ");
 
   auto res3 = sig_vec(3);
   result_stream << "Vector accumulator: Result (i=3): ";
   for (auto num : res3)
     result_stream << num << " ";
-  util->check_result(result_stream,
-    "foo: 10, A::foo: 46, bar: 12, Vector accumulator: Result (i=3): 10 46 12 ");
+  util->check_result(
+    result_stream, "foo: 10, A::foo: 46, bar: 12, Vector accumulator: Result (i=3): 10 46 12 ");
 }
 
 } // end anonymous namespace
 
-int main(int argc, char* argv[])
+int
+main(int argc, char* argv[])
 {
   util = TestUtilities::get_instance();
 
index 94e2f61..fd46fe8 100644 (file)
@@ -28,7 +28,7 @@ struct foo : public sigc::functor_base
 
   int operator()(int i, int j)
   {
-    result_stream << "foo(int " << i << ", int "<< j << ") ";
+    result_stream << "foo(int " << i << ", int " << j << ") ";
     return i + j;
   }
 
@@ -43,45 +43,44 @@ struct foo_void : public sigc::functor_base
 {
   using result_type = void;
 
-  void operator()(int i)
-  {
-    result_stream << "foo_void(int " << i << ")";
-  }
+  void operator()(int i) { result_stream << "foo_void(int " << i << ")"; }
 };
 
-int bar(int i, int j)
+int
+bar(int i, int j)
 {
   result_stream << "bar(int " << i << ", int " << j << ") ";
   return i + j;
 }
 
-bool simple(bool test)
+bool
+simple(bool test)
 {
   result_stream << "simple(bool " << test << ") ";
   return test;
 }
 
-void egon(std::string& str)
+void
+egon(std::string& str)
 {
   result_stream << "egon(string '" << str << "')";
   str = "egon was here";
 }
 
-
 struct book : public sigc::trackable
 {
   book(const std::string& name) : name_(name) {}
 
-  //non-copyable:
+  // non-copyable:
   book(const book&) = delete;
   book& operator=(const book&) = delete;
-  
-  //non movable:
+
+  // non movable:
   book(book&&) = delete;
   book& operator=(book&&) = delete;
 
-  std::string& get_name()  { return name_; }
-  operator std::string& () { return get_name(); }
+  std::string& get_name() { return name_; }
+  operator std::string&() { return get_name(); }
 
 private:
   std::string name_;
@@ -89,7 +88,8 @@ private:
 
 } // end anonymous namespace
 
-int main(int argc, char* argv[])
+int
+main(int argc, char* argv[])
 {
   auto util = TestUtilities::get_instance();
 
@@ -126,7 +126,7 @@ int main(int argc, char* argv[])
   util->check_result(result_stream, "foo_void(int 12)");
 
   // function pointer instead of functor
-  sigc::bind(&bar, 13, 14)();
+  sigc::bind (&bar, 13, 14)();
   util->check_result(result_stream, "bar(int 13, int 14) ");
 
   // method pointer instead of functor
@@ -143,8 +143,10 @@ int main(int argc, char* argv[])
 
   // test references
   std::string str("guest book");
-  sigc::bind(&egon, std::ref(str))(); // Tell bind that it shall store a reference.
-  result_stream << " " << str; // (This cannot be the default behaviour: just think about what happens if str dies!)
+  sigc::bind (&egon, std::ref(str))(); // Tell bind that it shall store a reference.
+  result_stream
+    << " "
+    << str; // (This cannot be the default behaviour: just think about what happens if str dies!)
   util->check_result(result_stream, "egon(string 'guest book') egon was here");
 
   sigc::slot<void()> sl;
index 763e48f..efcd360 100644 (file)
@@ -16,19 +16,22 @@ namespace
 
 std::ostringstream result_stream;
 
-bool func_to_bind(int a, int b)
+bool
+func_to_bind(int a, int b)
 {
   result_stream << "func_to_bind(" << a << ", " << b << ")";
   return true;
 }
 
-bool func_to_bind_with_iter(int a, std::string::iterator& b)
+bool
+func_to_bind_with_iter(int a, std::string::iterator& b)
 {
   result_stream << "func_to_bind_with_iter(" << a << ", " << *b << ")";
   return true;
 }
 
-bool func_to_bind_with_const_iter(int a, std::string::const_iterator& b)
+bool
+func_to_bind_with_const_iter(int a, std::string::const_iterator& b)
 {
   result_stream << "func_to_bind_with_const_iter(" << a << ", " << *b << ")";
   return true;
@@ -36,33 +39,35 @@ bool func_to_bind_with_const_iter(int a, std::string::const_iterator& b)
 
 } // end anonymous namespace
 
-int main(int argc, char* argv[])
+int
+main(int argc, char* argv[])
 {
   auto util = TestUtilities::get_instance();
 
   if (!util->check_command_args(argc, argv))
     return util->get_result_and_delete_instance() ? EXIT_SUCCESS : EXIT_FAILURE;
 
-
-  //Test that sigc::bind()'s result can be converted to a sigc::slot<>.
+  // Test that sigc::bind()'s result can be converted to a sigc::slot<>.
   {
     sigc::slot<bool(int)> bound_slot = sigc::bind(sigc::ptr_fun(&func_to_bind), 2);
     bound_slot(1);
     util->check_result(result_stream, "func_to_bind(1, 2)");
   }
 
-  //Test with a non-const iterator:
+  // Test with a non-const iterator:
   {
     std::string c = "2";
-    sigc::slot<bool(int)> bound_slot = sigc::bind(sigc::ptr_fun(&func_to_bind_with_iter), c.begin());
+    sigc::slot<bool(int)> bound_slot =
+      sigc::bind(sigc::ptr_fun(&func_to_bind_with_iter), c.begin());
     bound_slot(1);
     util->check_result(result_stream, "func_to_bind_with_iter(1, 2)");
   }
 
-  //Test with a const_iterator:
+  // Test with a const_iterator:
   {
     const std::string c = "2";
-    sigc::slot<bool(int)> bound_slot = sigc::bind(sigc::ptr_fun(&func_to_bind_with_const_iter), c.begin());
+    sigc::slot<bool(int)> bound_slot =
+      sigc::bind(sigc::ptr_fun(&func_to_bind_with_const_iter), c.begin());
     bound_slot(1);
     util->check_result(result_stream, "func_to_bind_with_const_iter(1, 2)");
   }
index d1e02c6..831c3bc 100644 (file)
@@ -12,30 +12,30 @@ std::ostringstream result_stream;
 class Param : public sigc::trackable
 {
 public:
-  Param(const std::string& name)
-  : name_(name)
-  {}
+  Param(const std::string& name) : name_(name) {}
 
-  //non-copyable,
-  //so it can only be used with sigc::bind() via sigc::ref()
+  // non-copyable,
+  // so it can only be used with sigc::bind() via sigc::ref()
   Param(const Param&) = delete;
   Param& operator=(const Param&) = delete;
 
-  //non movable:
+  // non movable:
   Param(Param&&) = delete;
   Param& operator=(Param&&) = delete;
 
   std::string name_;
 };
 
-void handler(Param& param)
+void
+handler(Param& param)
 {
   result_stream << "  handler(param): param.name_=" << param.name_;
 }
 
 } // end anonymous namespace
 
-int main(int argc, char* argv[])
+int
+main(int argc, char* argv[])
 {
   auto util = TestUtilities::get_instance();
 
@@ -49,17 +49,18 @@ int main(int argc, char* argv[])
   util->check_result(result_stream, "");
 
   {
-    //Because Param derives from sigc::trackable(), std::ref() should disconnect
+    // Because Param derives from sigc::trackable(), std::ref() should disconnect
     // the signal handler when param is destroyed.
     Param param("murrayc");
     // A convoluted way to do
     // slot_bound = sigc::bind(slot_full, std::ref(param));
-    slot_bound = sigc::bind< -1, decltype(slot_full), std::reference_wrapper<Param> >(slot_full, std::ref(param));
+    slot_bound = sigc::bind<-1, decltype(slot_full), std::reference_wrapper<Param>>(
+      slot_full, std::ref(param));
 
     result_stream << "Calling slot when param exists:";
     slot_bound();
-    util->check_result(result_stream,
-      "Calling slot when param exists:  handler(param): param.name_=murrayc");
+    util->check_result(
+      result_stream, "Calling slot when param exists:  handler(param): param.name_=murrayc");
   } // auto-disconnect
 
   result_stream << "Calling slot when param does not exist:";
index 925f2fc..04ad92c 100644 (file)
@@ -130,9 +130,10 @@ public:
   inline explicit operator bool() const;
 
 #ifndef GLIBMM_DISABLE_DEPRECATED
-  /// @deprecated Use reset() instead because this leads to confusion with clear() methods on the underlying class. For instance, people use .clear() when they mean ->clear().
+  /// @deprecated Use reset() instead because this leads to confusion with clear() methods on the
+  /// underlying class. For instance, people use .clear() when they mean ->clear().
   inline void clear();
-#endif //GLIBMM_DISABLE_DEPRECATED
+#endif // GLIBMM_DISABLE_DEPRECATED
 
   /** Set underlying instance to 0, decrementing reference count of existing instance appropriately.
    * @newin{2,16}
@@ -193,43 +194,38 @@ private:
   T_CppObject* pCppObject_;
 };
 
-
 #ifndef DOXYGEN_SHOULD_SKIP_THIS
 
 // RefPtr<>::operator->() comes first here since it's used by other methods.
 // If it would come after them it wouldn't be inlined.
 
-template <class T_CppObject> inline
-T_CppObject* RefPtr<T_CppObject>::operator->() const
+template <class T_CppObject>
+inline T_CppObject* RefPtr<T_CppObject>::operator->() const
 {
   return pCppObject_;
 }
 
-template <class T_CppObject> inline
-RefPtr<T_CppObject>::RefPtr()
-:
-  pCppObject_ (nullptr)
-{}
+template <class T_CppObject>
+inline RefPtr<T_CppObject>::RefPtr() : pCppObject_(nullptr)
+{
+}
 
-template <class T_CppObject> inline
-RefPtr<T_CppObject>::~RefPtr()
+template <class T_CppObject>
+inline RefPtr<T_CppObject>::~RefPtr()
 {
-  if(pCppObject_)
+  if (pCppObject_)
     pCppObject_->unreference(); // This could cause pCppObject to be deleted.
 }
 
-template <class T_CppObject> inline
-RefPtr<T_CppObject>::RefPtr(T_CppObject* pCppObject)
-:
-  pCppObject_ (pCppObject)
-{}
+template <class T_CppObject>
+inline RefPtr<T_CppObject>::RefPtr(T_CppObject* pCppObject) : pCppObject_(pCppObject)
+{
+}
 
-template <class T_CppObject> inline
-RefPtr<T_CppObject>::RefPtr(const RefPtr<T_CppObject>& src)
-:
-  pCppObject_ (src.pCppObject_)
+template <class T_CppObject>
+inline RefPtr<T_CppObject>::RefPtr(const RefPtr<T_CppObject>& src) : pCppObject_(src.pCppObject_)
 {
-  if(pCppObject_)
+  if (pCppObject_)
     pCppObject_->reference();
 }
 
@@ -237,29 +233,29 @@ RefPtr<T_CppObject>::RefPtr(const RefPtr<T_CppObject>& src)
 // castable.  Thus, it does downcasts:
 //   base_ref = derived_ref
 template <class T_CppObject>
-  template <class T_CastFrom>
-inline
-RefPtr<T_CppObject>::RefPtr(const RefPtr<T_CastFrom>& src)
-:
-  // A different RefPtr<> will not allow us access to pCppObject_.  We need
+template <class T_CastFrom>
+inline RefPtr<T_CppObject>::RefPtr(const RefPtr<T_CastFrom>& src)
+: // A different RefPtr<> will not allow us access to pCppObject_.  We need
   // to add a get_underlying() for this, but that would encourage incorrect
   // use, so we use the less well-known operator->() accessor:
-  pCppObject_ (src.operator->())
+  pCppObject_(src.operator->())
 {
-  if(pCppObject_)
+  if (pCppObject_)
     pCppObject_->reference();
 }
 
-template <class T_CppObject> inline
-void RefPtr<T_CppObject>::swap(RefPtr<T_CppObject>& other)
+template <class T_CppObject>
+inline void
+RefPtr<T_CppObject>::swap(RefPtr<T_CppObject>& other)
 {
   const auto temp = pCppObject_;
   pCppObject_ = other.pCppObject_;
   other.pCppObject_ = temp;
 }
 
-template <class T_CppObject> inline
-RefPtr<T_CppObject>& RefPtr<T_CppObject>::operator=(const RefPtr<T_CppObject>& src)
+template <class T_CppObject>
+inline RefPtr<T_CppObject>&
+RefPtr<T_CppObject>::operator=(const RefPtr<T_CppObject>& src)
 {
   // In case you haven't seen the swap() technique to implement copy
   // assignment before, here's what it does:
@@ -285,113 +281,121 @@ RefPtr<T_CppObject>& RefPtr<T_CppObject>::operator=(const RefPtr<T_CppObject>& s
   //   even thinking about it to implement copy assignment whereever the
   //   object data is managed indirectly via a pointer, which is very common.
 
-  RefPtr<T_CppObject> temp (src);
+  RefPtr<T_CppObject> temp(src);
   this->swap(temp);
   return *this;
 }
 
 template <class T_CppObject>
-  template <class T_CastFrom>
-inline
-RefPtr<T_CppObject>& RefPtr<T_CppObject>::operator=(const RefPtr<T_CastFrom>& src)
+template <class T_CastFrom>
+inline RefPtr<T_CppObject>&
+RefPtr<T_CppObject>::operator=(const RefPtr<T_CastFrom>& src)
 {
-  RefPtr<T_CppObject> temp (src);
+  RefPtr<T_CppObject> temp(src);
   this->swap(temp);
   return *this;
 }
 
-template <class T_CppObject> inline
-bool RefPtr<T_CppObject>::operator==(const RefPtr<T_CppObject>& src) const
+template <class T_CppObject>
+inline bool
+RefPtr<T_CppObject>::operator==(const RefPtr<T_CppObject>& src) const
 {
   return (pCppObject_ == src.pCppObject_);
 }
 
-template <class T_CppObject> inline
-bool RefPtr<T_CppObject>::operator!=(const RefPtr<T_CppObject>& src) const
+template <class T_CppObject>
+inline bool
+RefPtr<T_CppObject>::operator!=(const RefPtr<T_CppObject>& src) const
 {
   return (pCppObject_ != src.pCppObject_);
 }
 
-template <class T_CppObject> inline
-RefPtr<T_CppObject>::operator bool() const
+template <class T_CppObject>
+inline RefPtr<T_CppObject>::operator bool() const
 {
   return (pCppObject_ != nullptr);
 }
 
 #ifndef GLIBMM_DISABLE_DEPRECATED
-template <class T_CppObject> inline
-void RefPtr<T_CppObject>::clear()
+template <class T_CppObject>
+inline void
+RefPtr<T_CppObject>::clear()
 {
   reset();
 }
-#endif //GLIBMM_DISABLE_DEPRECATED
+#endif // GLIBMM_DISABLE_DEPRECATED
 
-template <class T_CppObject> inline
-void RefPtr<T_CppObject>::reset()
+template <class T_CppObject>
+inline void
+RefPtr<T_CppObject>::reset()
 {
   RefPtr<T_CppObject> temp; // swap with an empty RefPtr<> to clear *this
   this->swap(temp);
 }
 
 template <class T_CppObject>
-  template <class T_CastFrom>
-inline
-RefPtr<T_CppObject> RefPtr<T_CppObject>::cast_dynamic(const RefPtr<T_CastFrom>& src)
+template <class T_CastFrom>
+inline RefPtr<T_CppObject>
+RefPtr<T_CppObject>::cast_dynamic(const RefPtr<T_CastFrom>& src)
 {
   const auto pCppObject = dynamic_cast<T_CppObject*>(src.operator->());
 
-  if(pCppObject)
+  if (pCppObject)
     pCppObject->reference();
 
   return RefPtr<T_CppObject>(pCppObject);
 }
 
 template <class T_CppObject>
-  template <class T_CastFrom>
-inline
-RefPtr<T_CppObject> RefPtr<T_CppObject>::cast_static(const RefPtr<T_CastFrom>& src)
+template <class T_CastFrom>
+inline RefPtr<T_CppObject>
+RefPtr<T_CppObject>::cast_static(const RefPtr<T_CastFrom>& src)
 {
   const auto pCppObject = static_cast<T_CppObject*>(src.operator->());
 
-  if(pCppObject)
+  if (pCppObject)
     pCppObject->reference();
 
   return RefPtr<T_CppObject>(pCppObject);
 }
 
 template <class T_CppObject>
-  template <class T_CastFrom>
-inline
-RefPtr<T_CppObject> RefPtr<T_CppObject>::cast_const(const RefPtr<T_CastFrom>& src)
+template <class T_CastFrom>
+inline RefPtr<T_CppObject>
+RefPtr<T_CppObject>::cast_const(const RefPtr<T_CastFrom>& src)
 {
   const auto pCppObject = const_cast<T_CppObject*>(src.operator->());
 
-  if(pCppObject)
+  if (pCppObject)
     pCppObject->reference();
 
   return RefPtr<T_CppObject>(pCppObject);
 }
 
-template <class T_CppObject> inline
-bool RefPtr<T_CppObject>::operator<(const RefPtr<T_CppObject>& src) const
+template <class T_CppObject>
+inline bool
+RefPtr<T_CppObject>::operator<(const RefPtr<T_CppObject>& src) const
 {
   return (pCppObject_ < src.pCppObject_);
 }
 
-template <class T_CppObject> inline
-bool RefPtr<T_CppObject>::operator<=(const RefPtr<T_CppObject>& src) const
+template <class T_CppObject>
+inline bool
+RefPtr<T_CppObject>::operator<=(const RefPtr<T_CppObject>& src) const
 {
   return (pCppObject_ <= src.pCppObject_);
 }
 
-template <class T_CppObject> inline
-bool RefPtr<T_CppObject>::operator>(const RefPtr<T_CppObject>& src) const
+template <class T_CppObject>
+inline bool
+RefPtr<T_CppObject>::operator>(const RefPtr<T_CppObject>& src) const
 {
   return (pCppObject_ > src.pCppObject_);
 }
 
-template <class T_CppObject> inline
-bool RefPtr<T_CppObject>::operator>=(const RefPtr<T_CppObject>& src) const
+template <class T_CppObject>
+inline bool
+RefPtr<T_CppObject>::operator>=(const RefPtr<T_CppObject>& src) const
 {
   return (pCppObject_ >= src.pCppObject_);
 }
@@ -399,18 +403,17 @@ bool RefPtr<T_CppObject>::operator>=(const RefPtr<T_CppObject>& src) const
 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
 
 /** @relates Glib::RefPtr */
-template <class T_CppObject> inline
-void swap(RefPtr<T_CppObject>& lhs, RefPtr<T_CppObject>& rhs)
+template <class T_CppObject>
+inline void
+swap(RefPtr<T_CppObject>& lhs, RefPtr<T_CppObject>& rhs)
 {
   lhs.swap(rhs);
 }
 
 } // namespace Glib
 
-
 #endif /* _GLIBMM_REFPTR_H */
 
-
 namespace
 {
 std::ostringstream result_stream;
@@ -418,10 +421,14 @@ std::ostringstream result_stream;
 class Action : public sigc::trackable
 {
 public:
-  Action() : ref_count(1) { }
+  Action() : ref_count(1) {}
 
   void reference() { ++ref_count; }
-  void unreference() { if (--ref_count <= 0) delete this; }
+  void unreference()
+  {
+    if (--ref_count <= 0)
+      delete this;
+  }
 
   void emit_sig1(int n) { sig1.emit(n); }
 
@@ -430,17 +437,15 @@ public:
 private:
   sigc::signal<void(int)> sig1;
   int ref_count;
-
 };
 
 class Test : public sigc::trackable
 {
 public:
-  Test()
-  : action(new Action)
+  Test() : action(new Action)
   {
     result_stream << "new Test; ";
-#ifdef ACTIVATE_BUG //See https://bugzilla.gnome.org/show_bug.cgi?id=564005#c14
+#ifdef ACTIVATE_BUG // See https://bugzilla.gnome.org/show_bug.cgi?id=564005#c14
     action->signal_sig1().connect(sigc::bind(sigc::mem_fun(*this, &Test::on_sig1), action));
 #else
     Glib::RefPtr<Action> action2(new Action);
@@ -448,10 +453,7 @@ public:
 #endif
   }
 
-  ~Test()
-  {
-    result_stream << "delete Test; ";
-  }
+  ~Test() { result_stream << "delete Test; "; }
 
   void on_sig1(int n, Glib::RefPtr<Action> /* action */)
   {
@@ -464,7 +466,8 @@ public:
 
 } // end anonymous namespace
 
-int main(int argc, char* argv[])
+int
+main(int argc, char* argv[])
 {
   auto util = TestUtilities::get_instance();
 
index 737e96b..c9bf9b4 100644 (file)
@@ -17,15 +17,12 @@ std::ostringstream result_stream;
 
 struct foo
 {
-  void operator()(int i)
-  {
-    result_stream << "foo(int " << i << ") ";
-  }
+  void operator()(int i) { result_stream << "foo(int " << i << ") "; }
 
   float operator()(float i)
   {
     result_stream << "foo(float " << i << ") ";
-    return i*5;
+    return i * 5;
   }
 };
 
@@ -38,7 +35,8 @@ struct bar : public sigc::trackable
 
 } // end anonymous namespace
 
-int main(int argc, char* argv[])
+int
+main(int argc, char* argv[])
 {
   auto util = TestUtilities::get_instance();
 
@@ -54,7 +52,7 @@ int main(int argc, char* argv[])
   std::string str("guest book");
   // A convoluted way to do
   // sigc::bind_return(foo(), std::ref(str))(6) = "main";
-  sigc::bind_return<std::reference_wrapper<std::string> >(foo(), std::ref(str))(6) = "main";
+  sigc::bind_return<std::reference_wrapper<std::string>>(foo(), std::ref(str))(6) = "main";
   result_stream << str;
   util->check_result(result_stream, "foo(int 6) main");
 
index 1169be6..414947e 100644 (file)
@@ -9,7 +9,10 @@
 #include <cstdlib>
 
 // assume existance of T_functor::result_type for unknown functor types:
-namespace sigc { SIGC_FUNCTORS_HAVE_RESULT_TYPE }
+namespace sigc
+{
+SIGC_FUNCTORS_HAVE_RESULT_TYPE
+}
 
 namespace
 {
@@ -23,13 +26,13 @@ struct set
   double operator()(int i)
   {
     result_stream << "set(int " << i << ") ";
-    return i*i;
+    return i * i;
   }
 
   double operator()(double i)
   {
     result_stream << "set(double " << i << ") ";
-    return i*5;
+    return i * 5;
   }
 };
 
@@ -37,10 +40,7 @@ struct set_void
 {
   using result_type = void;
 
-  void operator()(double i)
-  {
-    result_stream << "set_void(double " << i << ")";
-  }
+  void operator()(double i) { result_stream << "set_void(double " << i << ")"; }
 };
 
 struct get
@@ -55,13 +55,13 @@ struct get
   int operator()(int i)
   {
     result_stream << "get(" << i << ") ";
-    return i*2;
+    return i * 2;
   }
 
   double operator()(int i, int j)
   {
     result_stream << "get(" << i << ", " << j << ") ";
-    return double(i)/double(j);
+    return double(i) / double(j);
   }
 #else
   // choose a type that can hold all return values
@@ -76,20 +76,21 @@ struct get
   double operator()(int i)
   {
     result_stream << "get(" << i << ") ";
-    return i*2;
+    return i * 2;
   }
 
   double operator()(int i, int j)
   {
     result_stream << "get(" << i << ", " << j << ") ";
-    return double(i)/double(j);
+    return double(i) / double(j);
   }
 #endif
 };
 
 } // end anonymous namespace
 
-int main(int argc, char* argv[])
+int
+main(int argc, char* argv[])
 {
   auto util = TestUtilities::get_instance();
 
@@ -105,7 +106,7 @@ int main(int argc, char* argv[])
   result_stream << sigc::compose(set(), get())(1, 2);
   util->check_result(result_stream, "get(1, 2) set(double 0.5) 2.5");
 
-  sigc::compose(set_void(), get())(3); //void test
+  sigc::compose(set_void(), get())(3); // void test
   util->check_result(result_stream, "get(3) set_void(double 6)");
 
   return util->get_result_and_delete_instance() ? EXIT_SUCCESS : EXIT_FAILURE;
index 4dcb6d6..5af9121 100644 (file)
@@ -10,14 +10,16 @@ namespace
 {
 std::ostringstream result_stream;
 
-void Foo(sigc::trackable&)
+void
+Foo(sigc::trackable&)
 {
   result_stream << "Foo(x)";
 }
 
 } // end anonymous namespace
 
-int main(int argc, char* argv[])
+int
+main(int argc, char* argv[])
 {
   auto util = TestUtilities::get_instance();
 
index 8d62536..624bb0d 100644 (file)
@@ -42,7 +42,6 @@
 //   echo $?
 // If test_cpp11_lambda writes nothing and the return code is 0, the test has passed.
 
-
 #include "testutilities.h"
 #include <string>
 #include <iostream>
 #include <sigc++/adaptors/track_obj.h>
 #include <sigc++/signal.h>
 
-
 namespace
 {
 std::ostringstream result_stream;
 
-int foo(int i, int j)
+int
+foo(int i, int j)
 {
   result_stream << "foo(int " << i << ", int " << j << ") ";
-  return 4*i + j;
+  return 4 * i + j;
 }
 
-void foo_void(int i)
+void
+foo_void(int i)
 {
   result_stream << "foo_void(int " << i << ")";
 }
@@ -75,16 +75,14 @@ struct bar
   int test(int i, int j)
   {
     result_stream << "bar::test(int " << i << ", int " << j << ") ";
-    return 4*i + j;
+    return 4 * i + j;
   }
 
-  void test_void(int i)
-  {
-    result_stream << "bar::test_void(int " << i << ")";
-  }
+  void test_void(int i) { result_stream << "bar::test_void(int " << i << ")"; }
 };
 
-void egon(std::string& str)
+void
+egon(std::string& str)
 {
   result_stream << "egon(string '" << str << "')";
   str = "egon was here";
@@ -93,33 +91,38 @@ void egon(std::string& str)
 struct book : public sigc::trackable
 {
   explicit book(const std::string& name) : name_(name) {}
-  operator std::string& () { return name_; }
+  operator std::string&() { return name_; }
   std::string name_;
 };
 
-inline std::ostringstream& operator << (std::ostringstream& s, const book& b)
+inline std::ostringstream&
+operator<<(std::ostringstream& s, const book& b)
 {
   s << b.name_;
   return s;
 }
 
-void foo_group1(int i, int j)
+void
+foo_group1(int i, int j)
 {
   result_stream << "foo_group1(int " << i << ", int " << j << ")";
 }
 
-int bar_group1(int i)
+int
+bar_group1(int i)
 {
   result_stream << "bar_group1(int " << i << ") ";
   return i + 2;
 }
 
-void foo_group2(int i)
+void
+foo_group2(int i)
 {
   result_stream << "foo_group2(int " << i << ")";
 }
 
-void foo_group3(int& i)
+void
+foo_group3(int& i)
 {
   result_stream << "foo_group3(int " << i << ")";
   ++i;
@@ -129,135 +132,141 @@ struct bar_group4 : public sigc::trackable
 {
 };
 
-void foo_group4(bar_group4&)
+void
+foo_group4(bar_group4&)
 {
   result_stream << "foo_group4(bar_group4&)";
 }
 
 } // end anonymous namespace
 
-
-
-int main(int argc, char* argv[])
+int
+main(int argc, char* argv[])
 {
   auto util = TestUtilities::get_instance();
 
   if (!util->check_command_args(argc, argv))
     return util->get_result_and_delete_instance() ? EXIT_SUCCESS : EXIT_FAILURE;
 
-
   // test lambda operators
-  //std::cout << "(_1 + _2) (3,4):    " << (_1 + _2) (3,4)      << std::endl;
-  result_stream << ([] (int a, int b) -> int { return a + b; }(3,4));
+  // std::cout << "(_1 + _2) (3,4):    " << (_1 + _2) (3,4)      << std::endl;
+  result_stream << ([](int a, int b) -> int { return a + b; }(3, 4));
   util->check_result(result_stream, "7");
 
-  //std::cout << "(_1 + 1)  (3,4):    " << (_1 + 1)  (3,4)      << std::endl;
-  result_stream << ([] (int a, int) -> int { return a + 1; }(3,4));
+  // std::cout << "(_1 + 1)  (3,4):    " << (_1 + 1)  (3,4)      << std::endl;
+  result_stream << ([](int a, int) -> int { return a + 1; }(3, 4));
   util->check_result(result_stream, "4");
 
-  //std::cout << "(_2 + 1)  (3,4):    " << (_2 + 1)  (3,4)      << std::endl;
-  result_stream << ([] (int, int b) -> int { return b + 1; }(3,4));
+  // std::cout << "(_2 + 1)  (3,4):    " << (_2 + 1)  (3,4)      << std::endl;
+  result_stream << ([](int, int b) -> int { return b + 1; }(3, 4));
   util->check_result(result_stream, "5");
 
-  //std::cout << "(2 + _1)  (3,4):    " << (2 + _1)  (3,4)      << std::endl;
-  result_stream << ([] (int a, int) -> int { return 2 + a; }(3,4));
+  // std::cout << "(2 + _1)  (3,4):    " << (2 + _1)  (3,4)      << std::endl;
+  result_stream << ([](int a, int) -> int { return 2 + a; }(3, 4));
   util->check_result(result_stream, "5");
 
-  //std::cout << "(2 + _2)  (3,4):    " << (2 + _2)  (3,4)      << std::endl;
-  result_stream << ([] (int, int b) -> int { return 2 + b; }(3,4));
+  // std::cout << "(2 + _2)  (3,4):    " << (2 + _2)  (3,4)      << std::endl;
+  result_stream << ([](int, int b) -> int { return 2 + b; }(3, 4));
   util->check_result(result_stream, "6");
 
-  //std::cout << "(_1+_2*_3)(1,2,3):  " << (_1+_2*_3)(1,2,3)    << std::endl;
-  result_stream << ([] (int a, int b, int c) -> int { return a + b*c; }(1,2,3));
+  // std::cout << "(_1+_2*_3)(1,2,3):  " << (_1+_2*_3)(1,2,3)    << std::endl;
+  result_stream << ([](int a, int b, int c) -> int { return a + b * c; }(1, 2, 3));
   util->check_result(result_stream, "7");
 
-  //std::cout << "((++_1)*2)(1):      " << ((++_1)*2)(1)        << std::endl;
-  result_stream << ([] (int a) -> int { return ++a * 2; }(1));
+  // std::cout << "((++_1)*2)(1):      " << ((++_1)*2)(1)        << std::endl;
+  result_stream << ([](int a) -> int { return ++a * 2; }(1));
   util->check_result(result_stream, "4");
 
-  //std::cout << "((++_1)*2)(a):      " << ((++_1)*2)(a);
-  //std::cout << "; a: "                << a                    << std::endl;
+  // std::cout << "((++_1)*2)(a):      " << ((++_1)*2)(a);
+  // std::cout << "; a: "                << a                    << std::endl;
   int a_outer = 1;
-  result_stream << ([] (int x) -> int { return ++x * 2; }(a_outer)) << " " << a_outer;
+  result_stream << ([](int x) -> int { return ++x * 2; }(a_outer)) << " " << a_outer;
   util->check_result(result_stream, "4 1");
 
   // gcc can't compile libsigc++ lambda expressions with std::ref() parameters.
   // See https://bugzilla.gnome.org/show_bug.cgi?id=669128
   //  std::cout << "((++_1)*2)(ref(a)): " << ((++_1)*2)(std::ref(a));
   //  std::cout << "; a: "                << a                    << std::endl;
-  result_stream << ([] (std::reference_wrapper<int> x) -> int { return ++x * 2; }(std::ref(a_outer)));
+  result_stream << ([](std::reference_wrapper<int> x) -> int { return ++x * 2; }(
+                      std::ref(a_outer)));
   result_stream << " " << a_outer;
   util->check_result(result_stream, "4 2");
-  result_stream << ([] (int& x) -> int { return ++x * 2; }(a_outer));
+  result_stream << ([](int& x) -> int { return ++x * 2; }(a_outer));
   result_stream << " " << a_outer;
   util->check_result(result_stream, "6 3");
 
-  //std::cout << "((++(*_1))*2)(&a):  " << ((++(*_1))*2)(&a);
-  //std::cout << "; a: "                << a                    << std::endl;
-  result_stream << ([] (int* x) -> int { return ++(*x) * 2; }(&a_outer));
+  // std::cout << "((++(*_1))*2)(&a):  " << ((++(*_1))*2)(&a);
+  // std::cout << "; a: "                << a                    << std::endl;
+  result_stream << ([](int* x) -> int { return ++(*x) * 2; }(&a_outer));
   result_stream << " " << a_outer;
   util->check_result(result_stream, "8 4");
 
   //  std::cout << "((--(*(&_1)))*2)(ref(a)): " << ((--(*(&_1)))*2)(std::ref(a));
   //  std::cout << "; a: "                << a                    << std::endl;
-  result_stream << ([] (std::reference_wrapper<int> x) -> int { return --(*(&x)) * 2; }(std::ref(a_outer)));
+  result_stream << ([](std::reference_wrapper<int> x) -> int { return --(*(&x)) * 2; }(
+                      std::ref(a_outer)));
   result_stream << " " << a_outer;
   util->check_result(result_stream, "6 3");
-  result_stream << ([] (int& x) -> int { return --(*(&x)) * 2; }(a_outer));
+  result_stream << ([](int& x) -> int { return --(*(&x)) * 2; }(a_outer));
   result_stream << " " << a_outer;
   util->check_result(result_stream, "4 2");
 
-  //std::cout << "(-_1)     (-5):     " << (-_1)     (-5)       << std::endl;
-  result_stream << ([] (int x) -> int { return -x; }(-5));
+  // std::cout << "(-_1)     (-5):     " << (-_1)     (-5)       << std::endl;
+  result_stream << ([](int x) -> int { return -x; }(-5));
   util->check_result(result_stream, "5");
 
-  //std::cout << "(var(&a)[0])():     " << (sigc::var(&a)[0])() << std::endl;
+  // std::cout << "(var(&a)[0])():     " << (sigc::var(&a)[0])() << std::endl;
   result_stream << ([&a_outer]() -> int { return a_outer; }());
   util->check_result(result_stream, "2");
 
-  //std::cout << "(_1[_2])    (&a,0): " << (_1[_2])    (&a,0)   << std::endl;
-  result_stream << ([] (int* x, int y) -> int { return x[y]; }(&a_outer,0));
+  // std::cout << "(_1[_2])    (&a,0): " << (_1[_2])    (&a,0)   << std::endl;
+  result_stream << ([](int* x, int y) -> int { return x[y]; }(&a_outer, 0));
   util->check_result(result_stream, "2");
 
-  //std::cout << "(*_1=_2)    (&a,1): " << (*_1=_2)    (&a,1)   << std::endl;
-  result_stream << ([] (int* x, int y) -> int { *x = y; return *x; }(&a_outer,1));
+  // std::cout << "(*_1=_2)    (&a,1): " << (*_1=_2)    (&a,1)   << std::endl;
+  result_stream << ([](int* x, int y) -> int {
+    *x = y;
+    return *x;
+  }(&a_outer, 1));
   util->check_result(result_stream, "1");
 
   // Comma operator, https://bugzilla.gnome.org/show_bug.cgi?id=342911
   a_outer = -1;
   int b_outer = -1;
   int c_outer = -1;
-  //std::cout << "(var(c) = (var(a) = _1, var(b) = _2))(2,3): "
+  // std::cout << "(var(c) = (var(a) = _1, var(b) = _2))(2,3): "
   //          << (sigc::var(c) = (sigc::var(a) = _1, sigc::var(b) = _2))(2,3);
-  //std::cout << "; a: " << a << "; b: " << b << "; c: " << c << std::endl;
-  result_stream << ([&a_outer,&b_outer,&c_outer](int x, int y) -> int { return c_outer = (a_outer = x, b_outer = y); }(2,3));
+  // std::cout << "; a: " << a << "; b: " << b << "; c: " << c << std::endl;
+  result_stream << ([&a_outer, &b_outer, &c_outer](
+                      int x, int y) -> int { return c_outer = (a_outer = x, b_outer = y); }(2, 3));
   result_stream << " " << a_outer << " " << b_outer << " " << c_outer;
   util->check_result(result_stream, "3 2 3 3");
 
   // c++ restrictions:
   // - ref() must be used to indicate that the value shall not be copied
   // - constant() is used to create a lambda and delay execution of "std::cout << 1"
-  // - var() is used to create a lambda that holds a reference and is interchangable with ref() in lambda operator expressions
+  // - var() is used to create a lambda that holds a reference and is interchangable with ref() in
+  // lambda operator expressions
   // - cannot use std::endl without much hackery because it is defined as a template function
   // - cannot use "\n" without var() because arrays cannot be copied
   //  (std::ref(std::cout) << sigc::constant(1) << sigc::var("\n"))();
-  [](){ result_stream << 1 << "\n"; }();
+  []() { result_stream << 1 << "\n"; }();
   util->check_result(result_stream, "1\n");
 
   //(std::ref(std::cout) << _1 << std::string("\n"))("hello world");
-  [](const char* a){ result_stream << a << std::string("\n"); }("hello world");
+  [](const char* a) { result_stream << a << std::string("\n"); }("hello world");
   util->check_result(result_stream, "hello world\n");
 
   //(std::ref(std::cout) << sigc::static_cast_<int>(_1) << std::string("\n"))(1.234);
-  [](double a){ result_stream << static_cast<int>(a) << std::string("\n"); }(1.234);
+  [](double a) { result_stream << static_cast<int>(a) << std::string("\n"); }(1.234);
   util->check_result(result_stream, "1\n");
 
   //  (sigc::var(std::cout) << 1 << sigc::var("\n"))();
-  [](){ result_stream << 1 << "\n"; }();
+  []() { result_stream << 1 << "\n"; }();
   util->check_result(result_stream, "1\n");
 
   //(sigc::var(std::cout) << _1 << std::string("\n"))("hello world");
-  [](const char* a){ result_stream << a << std::string("\n"); }("hello world");
+  [](const char* a) { result_stream << a << std::string("\n"); }("hello world");
   util->check_result(result_stream, "hello world\n");
 
   // auto-disconnect
@@ -268,9 +277,11 @@ int main(int argc, char* argv[])
   sigc::slot<void(std::ostringstream&)> sl1;
   {
     book guest_book("karl");
-    //sl1 = (sigc::var(std::cout) << std::ref(guest_book) << sigc::var("\n"));
-    // sl1 = [&guest_book](std::ostringstream& stream){ stream << guest_book << "\n"; }; // no auto-disconnect
-    sl1 = sigc::track_obj([&guest_book](std::ostringstream& stream){ stream << guest_book << "\n"; }, guest_book);
+    // sl1 = (sigc::var(std::cout) << std::ref(guest_book) << sigc::var("\n"));
+    // sl1 = [&guest_book](std::ostringstream& stream){ stream << guest_book << "\n"; }; // no
+    // auto-disconnect
+    sl1 = sigc::track_obj(
+      [&guest_book](std::ostringstream& stream) { stream << guest_book << "\n"; }, guest_book);
     sl1(result_stream);
     util->check_result(result_stream, "karl\n");
 
@@ -281,27 +292,28 @@ int main(int argc, char* argv[])
 
   // test group adaptor, here replaced by std::bind
   bar the_bar;
-  //std::cout << (sigc::group(&foo, _1, _2)) (1, 2) << std::endl;
+  // std::cout << (sigc::group(&foo, _1, _2)) (1, 2) << std::endl;
   result_stream << std::bind(&foo, std::placeholders::_1, std::placeholders::_2)(1, 2);
   util->check_result(result_stream, "foo(int 1, int 2) 6");
 
-  //std::cout << (sigc::group(&foo, _2, _1)) (1, 2) << std::endl;
+  // std::cout << (sigc::group(&foo, _2, _1)) (1, 2) << std::endl;
   result_stream << std::bind(&foo, std::placeholders::_2, std::placeholders::_1)(1, 2);
   util->check_result(result_stream, "foo(int 2, int 1) 9");
 
-  //std::cout << (sigc::group(sigc::mem_fun(&bar::test), _1, _2, _3)) (std::ref(the_bar), 1, 2) << std::endl;
+  // std::cout << (sigc::group(sigc::mem_fun(&bar::test), _1, _2, _3)) (std::ref(the_bar), 1, 2) <<
+  // std::endl;
   // std::ref(the_bar) is not necessary. It can make the call ambiguous.
   // Even without std::ref() the_bar is not copied.
-  result_stream << std::bind(std::mem_fn(&bar::test), std::placeholders::_1,
-    std::placeholders::_2, std::placeholders::_3)(the_bar, 1, 2);
+  result_stream << std::bind(std::mem_fn(&bar::test), std::placeholders::_1, std::placeholders::_2,
+    std::placeholders::_3)(the_bar, 1, 2);
   util->check_result(result_stream, "bar::test(int 1, int 2) 6");
 
   // same functionality as bind
-  //std::cout << (sigc::group(&foo, _1, 2))  (1)    << std::endl;
+  // std::cout << (sigc::group(&foo, _1, 2))  (1)    << std::endl;
   result_stream << std::bind(&foo, std::placeholders::_1, 2)(1);
   util->check_result(result_stream, "foo(int 1, int 2) 6");
 
-  //std::cout << (sigc::group(&foo, 1, 2))   ()     << std::endl;
+  // std::cout << (sigc::group(&foo, 1, 2))   ()     << std::endl;
   result_stream << std::bind(&foo, 1, 2)();
   util->check_result(result_stream, "foo(int 1, int 2) 6");
 
@@ -319,14 +331,14 @@ int main(int argc, char* argv[])
   sigc::slot<void()> sl2;
   {
     book guest_book("karl");
-    //sl2 = sigc::group(&egon, std::ref(guest_book));
+    // sl2 = sigc::group(&egon, std::ref(guest_book));
     // sl2 = [&guest_book] () { egon(guest_book); }; // no auto-disconnect
     // sl2 = std::bind(&egon, std::ref(guest_book)); // does not compile (gcc 4.6.3)
-    sl2 = sigc::track_obj([&guest_book] () { egon(guest_book); }, guest_book);
+    sl2 = sigc::track_obj([&guest_book]() { egon(guest_book); }, guest_book);
     sl2();
     util->check_result(result_stream, "egon(string 'karl')");
 
-    //std::cout << static_cast<std::string&>(guest_book) << std::endl;
+    // std::cout << static_cast<std::string&>(guest_book) << std::endl;
     result_stream << static_cast<std::string&>(guest_book);
     util->check_result(result_stream, "egon was here");
 
@@ -338,15 +350,15 @@ int main(int argc, char* argv[])
   // More auto-disconnect
   {
     book guest_book("charlie");
-    //sl2 = sigc::group(&egon, std::ref(guest_book));
+    // sl2 = sigc::group(&egon, std::ref(guest_book));
     // sl2 = std::bind(&egon, std::ref(guest_book)); // does not compile (gcc 4.6.3)
     auto fn2 = std::bind(&egon, std::ref(guest_book));
-    //sl2 = fn2; // no auto-disconnect
+    // sl2 = fn2; // no auto-disconnect
     sl2 = sigc::track_obj(fn2, guest_book);
     sl2();
     util->check_result(result_stream, "egon(string 'charlie')");
 
-    //std::cout << static_cast<std::string&>(guest_book) << std::endl;
+    // std::cout << static_cast<std::string&>(guest_book) << std::endl;
     result_stream << static_cast<std::string&>(guest_book);
     util->check_result(result_stream, "egon was here");
 
@@ -356,23 +368,23 @@ int main(int argc, char* argv[])
   util->check_result(result_stream, "");
 
   // same functionality as hide
-  //std::cout << (sigc::group(&foo, _1, _2)) (1,2,3) << std::endl;
-  result_stream << std::bind(&foo, std::placeholders::_1, std::placeholders::_2)(1,2,3);
+  // std::cout << (sigc::group(&foo, _1, _2)) (1,2,3) << std::endl;
+  result_stream << std::bind(&foo, std::placeholders::_1, std::placeholders::_2)(1, 2, 3);
   util->check_result(result_stream, "foo(int 1, int 2) 6");
 
   //(sigc::group(sigc::ptr_fun(&foo_void), _2)) (1, 2);
-  std::bind(&foo_void, std::placeholders::_2)(1, 2);
+  std::bind (&foo_void, std::placeholders::_2)(1, 2);
   util->check_result(result_stream, "foo_void(int 2)");
 
   // same functionality as compose
-  //std::cout << (sigc::group(&foo, sigc::group(&foo, _1, _2), _3)) (1,2,3) << std::endl;
+  // std::cout << (sigc::group(&foo, sigc::group(&foo, _1, _2), _3)) (1,2,3) << std::endl;
   result_stream << std::bind(&foo, std::bind(&foo, std::placeholders::_1, std::placeholders::_2),
-    std::placeholders::_3)(1,2,3);
+    std::placeholders::_3)(1, 2, 3);
   util->check_result(result_stream, "foo(int 1, int 2) foo(int 6, int 3) 27");
 
   // same functionality as retype
-  //std::cout << (sigc::group(&foo, sigc::static_cast_<int>(_1), 2)) (1.234) << std::endl;
-  result_stream << ([] (double x) -> int { return foo(static_cast<int>(x), 2); }(1.234));
+  // std::cout << (sigc::group(&foo, sigc::static_cast_<int>(_1), 2)) (1.234) << std::endl;
+  result_stream << ([](double x) -> int { return foo(static_cast<int>(x), 2); }(1.234));
   util->check_result(result_stream, "foo(int 1, int 2) 6");
 
   // Code examples with C++11 lambda expressions and std::bind, which can replace
@@ -381,23 +393,23 @@ int main(int argc, char* argv[])
 
   //--- sigc++/adaptors/lambda/macros/base.h.m4
 
-  //std::cout << sigc::_1(10,20,30); // returns 10
-  result_stream << ([] (int x, int, int) -> int { return x; }(10,20,30));
+  // std::cout << sigc::_1(10,20,30); // returns 10
+  result_stream << ([](int x, int, int) -> int { return x; }(10, 20, 30));
   util->check_result(result_stream, "10");
 
-  //std::cout << sigc::_2(10,20,30); // returns 20
-  result_stream << ([] (int, int y, int) -> int { return y; }(10,20,30));
+  // std::cout << sigc::_2(10,20,30); // returns 20
+  result_stream << ([](int, int y, int) -> int { return y; }(10, 20, 30));
   util->check_result(result_stream, "20");
 
-  //std::cout << (sigc::_1 + 5)(3); // returns (3 + 5)
-  result_stream << ([] (int x) -> int { return x + 5; }(3));
+  // std::cout << (sigc::_1 + 5)(3); // returns (3 + 5)
+  result_stream << ([](int x) -> int { return x + 5; }(3));
   util->check_result(result_stream, "8");
 
-  //std::cout << (sigc::_1 * sigc::_2)(7,10); // returns (7 * 10)
-  result_stream << ([] (int x, int y) -> int { return x * y; }(7,10));
+  // std::cout << (sigc::_1 * sigc::_2)(7,10); // returns (7 * 10)
+  result_stream << ([](int x, int y) -> int { return x * y; }(7, 10));
   util->check_result(result_stream, "70");
 
-  //int main(int argc, char* argv[])
+  // int main(int argc, char* argv[])
   //{
   //  int data;
   //  sigc::signal<int()> readValue;
@@ -414,7 +426,7 @@ int main(int argc, char* argv[])
     int data;
     sigc::signal<int()> readValue;
 
-    readValue.connect([&data] () -> int { return data; });
+    readValue.connect([&data]() -> int { return data; });
 
     data = 3;
     result_stream << readValue();
@@ -428,65 +440,70 @@ int main(int argc, char* argv[])
   //--- sigc++/adaptors/lambda/macros/group.h.m4
 
   // argument binding ...
-  //sigc::group(&foo,10,sigc::_1)(20); //fixes the first argument and calls foo(10,20)
-  std::bind(&foo_group1, 10, std::placeholders::_1)(20);
+  // sigc::group(&foo,10,sigc::_1)(20); //fixes the first argument and calls foo(10,20)
+  std::bind (&foo_group1, 10, std::placeholders::_1)(20);
   util->check_result(result_stream, "foo_group1(int 10, int 20)");
 
-  //sigc::group(&foo,sigc::_1,30)(40); //fixes the second argument and calls foo(40,30)
-  std::bind(&foo_group1, std::placeholders::_1, 30)(40);
+  // sigc::group(&foo,sigc::_1,30)(40); //fixes the second argument and calls foo(40,30)
+  std::bind (&foo_group1, std::placeholders::_1, 30)(40);
   util->check_result(result_stream, "foo_group1(int 40, int 30)");
 
   // argument reordering ...
-  //sigc::group(&foo,sigc::_2,sigc::_1)(1,2); //calls foo(2,1)
-  std::bind(&foo_group1, std::placeholders::_2, std::placeholders::_1)(1,2);
+  // sigc::group(&foo,sigc::_2,sigc::_1)(1,2); //calls foo(2,1)
+  std::bind (&foo_group1, std::placeholders::_2, std::placeholders::_1)(1, 2);
   util->check_result(result_stream, "foo_group1(int 2, int 1)");
 
   // argument hiding ...
-  //sigc::group(&foo,sigc::_1,sigc::_2)(1,2,3); //calls foo(1,2)
-  std::bind(&foo_group1, std::placeholders::_1, std::placeholders::_2)(1,2,3);
+  // sigc::group(&foo,sigc::_1,sigc::_2)(1,2,3); //calls foo(1,2)
+  std::bind (&foo_group1, std::placeholders::_1, std::placeholders::_2)(1, 2, 3);
   util->check_result(result_stream, "foo_group1(int 1, int 2)");
 
   // functor composition ...
-  //sigc::group(&foo,sigc::_1,sigc::group(&bar,sigc::_2))(1,2); //calls foo(1,bar(2))
-  std::bind(&foo_group1,  std::placeholders::_1, std::bind(&bar_group1, std::placeholders::_2))(1,2);
+  // sigc::group(&foo,sigc::_1,sigc::group(&bar,sigc::_2))(1,2); //calls foo(1,bar(2))
+  std::bind (&foo_group1, std::placeholders::_1, std::bind(&bar_group1, std::placeholders::_2))(
+    1, 2);
   util->check_result(result_stream, "bar_group1(int 2) foo_group1(int 1, int 4)");
 
   // algebraic expressions ...
   // sigc::group(&foo,sigc::_1*sigc::_2,sigc::_1/sigc::_2)(6,3); //calls foo(6*3,6/3)
-  [] (int x, int y) { foo_group1(x*y, x/y); }(6,3);
+  [](int x, int y) { foo_group1(x * y, x / y); }(6, 3);
   util->check_result(result_stream, "foo_group1(int 18, int 2)");
 
   {
     sigc::signal<void(int, int)> some_signal;
-    //some_signal.connect(sigc::group(&foo,sigc::_2));
-    //some_signal.connect(std::bind(&foo_group2, std::placeholders::_2)); // does not compile (gcc 4.6.3)
+    // some_signal.connect(sigc::group(&foo,sigc::_2));
+    // some_signal.connect(std::bind(&foo_group2, std::placeholders::_2)); // does not compile (gcc
+    // 4.6.3)
     some_signal.connect([](int, int y) { foo_group2(y); });
-    some_signal.emit(1,2);
+    some_signal.emit(1, 2);
     util->check_result(result_stream, "foo_group2(int 2)");
   }
 
   {
     int some_int = 0;
     sigc::signal<void()> some_signal;
-    //some_signal.connect(sigc::group(&foo,std::ref(some_int)));
-    //some_signal.connect(std::bind(&foo_group3, std::ref(some_int))); // does not compile (gcc 4.6.3)
-    //some_signal.connect(sigc::bind(&foo_group3, std::ref(some_int))); // compiles, but we prefer std::bind() or C++11 lambda
-    some_signal.connect([&some_int](){ foo_group3(some_int); });
+    // some_signal.connect(sigc::group(&foo,std::ref(some_int)));
+    // some_signal.connect(std::bind(&foo_group3, std::ref(some_int))); // does not compile (gcc
+    // 4.6.3)
+    // some_signal.connect(sigc::bind(&foo_group3, std::ref(some_int))); // compiles, but we prefer
+    // std::bind() or C++11 lambda
+    some_signal.connect([&some_int]() { foo_group3(some_int); });
     some_signal.emit();
     result_stream << " " << some_int;
     util->check_result(result_stream, "foo_group3(int 0) 1");
   }
 
   {
-    //struct bar : public sigc::trackable {} some_bar;
+    // struct bar : public sigc::trackable {} some_bar;
     sigc::signal<void()> some_signal;
     {
       bar_group4 some_bar;
-      //some_signal.connect(sigc::group(&foo, std::ref(some_bar)));
+      // some_signal.connect(sigc::group(&foo, std::ref(some_bar)));
       // disconnected automatically if some_bar goes out of scope
-      //some_signal.connect([&some_bar](){ foo_group4(some_bar); }); // no auto-disconnect
-      //some_signal.connect(sigc::bind(&foo_group4, std::ref(some_bar))); // auto-disconnects, but we prefer C++11 lambda
-      some_signal.connect(sigc::track_obj([&some_bar](){ foo_group4(some_bar); }, some_bar));
+      // some_signal.connect([&some_bar](){ foo_group4(some_bar); }); // no auto-disconnect
+      // some_signal.connect(sigc::bind(&foo_group4, std::ref(some_bar))); // auto-disconnects, but
+      // we prefer C++11 lambda
+      some_signal.connect(sigc::track_obj([&some_bar]() { foo_group4(some_bar); }, some_bar));
       some_signal.emit();
       util->check_result(result_stream, "foo_group4(bar_group4&)");
     }
index 8b4e0f6..a32e83c 100644 (file)
@@ -13,7 +13,8 @@ std::ostringstream result_stream;
 
 } // end anonymous namespace
 
-int main(int argc, char* argv[])
+int
+main(int argc, char* argv[])
 {
   auto util = TestUtilities::get_instance();
 
index 7069a4d..0624fac 100644 (file)
 #include <sstream>
 #include <cstdlib>
 
-//The Tru64 compiler seems to need this to avoid an unresolved symbol
-//See bug #161503
+// The Tru64 compiler seems to need this to avoid an unresolved symbol
+// See bug #161503
 #include <new>
 
 namespace
 {
 std::ostringstream result_stream;
 
-int foo(int i)
+int
+foo(int i)
 {
   result_stream << "foo(" << i << ") ";
   return 1;
 }
 
-int bar(double i)
+int
+bar(double i)
 {
   result_stream << "bar(" << i << ") ";
   return 1;
@@ -41,7 +43,8 @@ struct A : public sigc::trackable
   }
 };
 
-void good_bye_world()
+void
+good_bye_world()
 {
   result_stream << "Good bye world!";
 }
@@ -55,27 +58,22 @@ struct B : public sigc::trackable
     sig.connect(sigc::ptr_fun(&good_bye_world));
   }
 
-  void destroy()   // Calling destroy() during signal emission seems weird!
-  {                // However, if this works, anything will work!
-    delete this;   // valgrind reports a small memory leak, that's all.
+  void destroy() // Calling destroy() during signal emission seems weird!
+  { // However, if this works, anything will work!
+    delete this; // valgrind reports a small memory leak, that's all.
   }
 
-  void boom()
-  {
-    result_stream << "boom!";
-  }
+  void boom() { result_stream << "boom!"; }
 
-  void emit()
-  {
-    sig.emit();
-  }
+  void emit() { sig.emit(); }
 
   sigc::signal<void()> sig;
 };
 
 } // end anonymous namespace
 
-int main(int argc, char* argv[])
+int
+main(int argc, char* argv[])
 {
   auto util = TestUtilities::get_instance();
 
@@ -85,7 +83,7 @@ int main(int argc, char* argv[])
   sigc::signal<int(int)> sig;
   sigc::signal<int(int)>::iterator confoo;
   sigc::signal<int(int)>::iterator conbar;
-  sigc::connection cona;  // connection objects are safe to use beyond the life time of a signal.
+  sigc::connection cona; // connection objects are safe to use beyond the life time of a signal.
 
   {
     A a;
@@ -94,20 +92,20 @@ int main(int argc, char* argv[])
     conbar = sig.connect(sigc::ptr_fun(&bar));
     result_stream << "sig is connected to A::foo, foo, bar (size=" << sig.size() << "): ";
     sig(1);
-    util->check_result(result_stream,
-      "sig is connected to A::foo, foo, bar (size=3): A::foo(1) foo(1) bar(1) ");
-  }                     // auto disconnection! iterators stay valid after disconnections.
+    util->check_result(
+      result_stream, "sig is connected to A::foo, foo, bar (size=3): A::foo(1) foo(1) bar(1) ");
+  } // auto disconnection! iterators stay valid after disconnections.
 
   result_stream << "sig is connected to foo, bar (size=" << sig.size() << "): ";
   sig(2);
   util->check_result(result_stream, "sig is connected to foo, bar (size=2): foo(2) bar(2) ");
 
-  A a;                  // iterators stay valid after further connections.
+  A a; // iterators stay valid after further connections.
   cona = sig.slots().insert(conbar, sigc::mem_fun(a, &A::foo));
   result_stream << "sig is connected to foo, A::foo, bar (size=" << sig.size() << "): ";
   sig(3);
-  util->check_result(result_stream,
-    "sig is connected to foo, A::foo, bar (size=3): foo(3) A::foo(3) bar(3) ");
+  util->check_result(
+    result_stream, "sig is connected to foo, A::foo, bar (size=3): foo(3) A::foo(3) bar(3) ");
 
   conbar->disconnect(); // manual disconnection
   result_stream << "sig is connected to foo, A::foo (size=" << sig.size() << "): ";
@@ -119,19 +117,21 @@ int main(int argc, char* argv[])
   sig(5);
   util->check_result(result_stream, "sig is connected to A::foo (size=1): A::foo(5) ");
 
-  cona.disconnect();    // manual disconnection
+  cona.disconnect(); // manual disconnection
   result_stream << "sig is empty (size=" << sig.size() << "): ";
   sig(6);
   util->check_result(result_stream, "sig is empty (size=0): ");
 
-  cona.disconnect();    // already disconnected -> legal with connection objects, however, nothing happens ...
+  cona.disconnect(); // already disconnected -> legal with connection objects, however, nothing
+                     // happens ...
 
   {
     A a2;
     sig.connect(sigc::compose(sigc::mem_fun(a2, &A::foo), &foo));
     result_stream << "sig is connected to compose(A::foo, foo) (size=" << sig.size() << "): ";
     sig(7);
-    util->check_result(result_stream, "sig is connected to compose(A::foo, foo) (size=1): foo(7) A::foo(1) ");
+    util->check_result(
+      result_stream, "sig is connected to compose(A::foo, foo) (size=1): foo(7) A::foo(1) ");
   }
   result_stream << "sig is empty (size=" << sig.size() << "): ";
   sig(8);
@@ -141,9 +141,11 @@ int main(int argc, char* argv[])
     A a2;
     sigc::slot<int(int)> setter = sigc::mem_fun(a2, &A::foo);
     sig.connect(sigc::compose(setter, &foo));
-    result_stream << "sig is connected to compose(slot1(A::foo), foo) (size=" << sig.size() << "): ";
+    result_stream << "sig is connected to compose(slot1(A::foo), foo) (size=" << sig.size()
+                  << "): ";
     sig(9);
-    util->check_result(result_stream, "sig is connected to compose(slot1(A::foo), foo) (size=1): foo(9) A::foo(1) ");
+    util->check_result(
+      result_stream, "sig is connected to compose(slot1(A::foo), foo) (size=1): foo(9) A::foo(1) ");
   }
   result_stream << "sig is empty (size=" << sig.size() << "): ";
   sig(10);
@@ -155,7 +157,8 @@ int main(int argc, char* argv[])
     sig.connect(sigc::compose(setter, &foo));
     result_stream << "sig is connected to compose(slot(A::foo), foo) (size=" << sig.size() << "): ";
     sig(11);
-    util->check_result(result_stream, "sig is connected to compose(slot(A::foo), foo) (size=1): foo(11) A::foo(1) ");
+    util->check_result(
+      result_stream, "sig is connected to compose(slot(A::foo), foo) (size=1): foo(11) A::foo(1) ");
   }
   result_stream << "sig is empty (size=" << sig.size() << "): ";
   sig(12);
index b610936..1ea02ad 100644 (file)
@@ -29,7 +29,8 @@ public:
 
 } // end anonymous namespace
 
-int main(int argc, char* argv[])
+int
+main(int argc, char* argv[])
 {
   auto util = TestUtilities::get_instance();
 
index a2838df..b8befd8 100644 (file)
@@ -82,7 +82,8 @@ struct my_catch_void
 
 } // end anonymous namespace
 
-int main(int argc, char* argv[])
+int
+main(int argc, char* argv[])
 {
   auto util = TestUtilities::get_instance();
 
index c14a126..fe1cf6d 100644 (file)
@@ -15,47 +15,37 @@ namespace
 {
 std::ostringstream result_stream;
 
-class trackable {};
+class trackable
+{
+};
 
-struct A : public trackable { A() {} };
+struct A : public trackable
+{
+  A() {}
+};
 
-template <class T_type, bool I_derived = std::is_base_of<trackable,T_type>::value>
+template <class T_type, bool I_derived = std::is_base_of<trackable, T_type>::value>
 struct with_trackable;
 
 template <class T_type>
-struct with_trackable<T_type,false>
+struct with_trackable<T_type, false>
 {
-  static void perform(const T_type&)
-  {
-    result_stream << "other ";
-  }
+  static void perform(const T_type&) { result_stream << "other "; }
 };
 
 template <class T_type>
-struct with_trackable<T_type,true>
+struct with_trackable<T_type, true>
 {
-  static void perform(const T_type&)
-  {
-    result_stream << "trackable ";
-  }
+  static void perform(const T_type&) { result_stream << "trackable "; }
 
-  static void perform(T_type*)
-  {
-    result_stream << "trackable* ";
-  }
+  static void perform(T_type*) { result_stream << "trackable* "; }
 
-  static void perform(const T_type*)
-  {
-    result_stream << "const trackable* ";
-  }
+  static void perform(const T_type*) { result_stream << "const trackable* "; }
 };
 
 struct print
 {
-  void operator()(int i) const
-  {
-    result_stream << "int: " << i << " ";
-  }
+  void operator()(int i) const { result_stream << "int: " << i << " "; }
 
   template <class T>
   void operator()(const T& t) const
@@ -64,15 +54,20 @@ struct print
   }
 };
 
-void foo(int, int, int)
-{}
+void
+foo(int, int, int)
+{
+}
 
-void bar(int)
-{}
+void
+bar(int)
+{
+}
 
 } // end anonymous namespace
 
-int main(int argc, char* argv[])
+int
+main(int argc, char* argv[])
 {
   auto util = TestUtilities::get_instance();
 
@@ -84,15 +79,18 @@ int main(int argc, char* argv[])
   int k = 3;
   A a;
   result_stream << "hit all targets: ";
-  sigc::visit_each(print(), sigc::compose(sigc::bind(sigc::ptr_fun(&foo), std::ref(a), i), sigc::ptr_fun(&bar)));
+  sigc::visit_each(
+    print(), sigc::compose(sigc::bind(sigc::ptr_fun(&foo), std::ref(a), i), sigc::ptr_fun(&bar)));
   util->check_result(result_stream, "hit all targets: other trackable int: 1 other ");
 
   result_stream << "hit all ints: ";
-  sigc::visit_each_type<int>(print(), sigc::compose(sigc::bind(sigc::ptr_fun(&foo), std::ref(a), j),sigc::ptr_fun(&bar)));
+  sigc::visit_each_type<int>(
+    print(), sigc::compose(sigc::bind(sigc::ptr_fun(&foo), std::ref(a), j), sigc::ptr_fun(&bar)));
   util->check_result(result_stream, "hit all ints: int: 2 ");
 
   result_stream << "hit all trackable: ";
-  sigc::visit_each_type<trackable>(print(), sigc::compose(sigc::bind(sigc::ptr_fun(&foo), std::ref(a), k),sigc::ptr_fun(&bar)));
+  sigc::visit_each_type<trackable>(
+    print(), sigc::compose(sigc::bind(sigc::ptr_fun(&foo), std::ref(a), k), sigc::ptr_fun(&bar)));
   util->check_result(result_stream, "hit all trackable: trackable ");
 
   return util->get_result_and_delete_instance() ? EXIT_SUCCESS : EXIT_FAILURE;
index 32a2a3a..7f67688 100644 (file)
@@ -34,17 +34,18 @@ struct foo_void : public sigc::functor_base
 {
   using result_type = void;
 
-  void operator()()
-  {
-    result_stream << "foo_void()";
-  }
+  void operator()() { result_stream << "foo_void()"; }
 };
 
 } // end anonymous namespace
 
-namespace sigc { SIGC_FUNCTOR_TRAIT(foo,bool) }
+namespace sigc
+{
+SIGC_FUNCTOR_TRAIT(foo, bool)
+}
 
-int main(int argc, char* argv[])
+int
+main(int argc, char* argv[])
 {
   auto util = TestUtilities::get_instance();
 
index 33d019b..5102497 100644 (file)
@@ -8,32 +8,26 @@ namespace
 {
 std::ostringstream result_stream;
 
-class Base
-  : virtual public sigc::trackable
+class Base : virtual public sigc::trackable
 {
 };
 
 class Base2
 {
 public:
-  virtual ~Base2()
-  {}
+  virtual ~Base2() {}
 };
 
-class Derived
-  : virtual public Base,
-    public Base2
+class Derived : virtual public Base, public Base2
 {
 public:
-  void method()
-  {
-    result_stream << "method()";
-  }
+  void method() { result_stream << "method()"; }
 };
 
 } // end anonymous namespace
 
-int main(int argc, char* argv[])
+int
+main(int argc, char* argv[])
 {
   auto util = TestUtilities::get_instance();
 
@@ -45,13 +39,11 @@ int main(int argc, char* argv[])
   handler();
   util->check_result(result_stream, "method()");
 
-  auto param =
-    sigc::bind(sigc::slot<void(Derived&)>(), std::ref(*instance));
+  auto param = sigc::bind(sigc::slot<void(Derived&)>(), std::ref(*instance));
   param();
   util->check_result(result_stream, "");
 
-  auto ret =
-    sigc::bind_return(sigc::slot<void()>(), std::ref(*instance));
+  auto ret = sigc::bind_return(sigc::slot<void()>(), std::ref(*instance));
   ret();
   util->check_result(result_stream, "");
 
index 2d49be3..403abba 100644 (file)
@@ -8,24 +8,21 @@
 #include <sstream>
 #include <cstdlib>
 
-//TODO: put something like #ifndef FORTE (some older version, I think) or AIX xlC... #else ... #endif around:
+// TODO: put something like #ifndef FORTE (some older version, I think) or AIX xlC... #else ...
+// #endif around:
 #define ENABLE_TEST_OF_OVERLOADED_FUNCTIONS 0
 
 namespace
 {
+
+TestUtilities* util = nullptr;
 std::ostringstream result_stream;
 
 struct test
 {
-  void foo(short i1)
-  {
-    result_stream << "test::foo(short " << i1 << ')';
-  }
+  void foo(short i1) { result_stream << "test::foo(short " << i1 << ')'; }
 
-  void foo_const(int i1) const
-  {
-    result_stream << "test::foo_const(int " << i1 << ')';
-  }
+  void foo_const(int i1) const { result_stream << "test::foo_const(int " << i1 << ')'; }
 
   void foo_volatile(float i1) volatile
   {
@@ -37,10 +34,7 @@ struct test
     result_stream << "test::foo_const_volatile(double " << i1 << ')';
   }
 
-  void foo_overloaded(char i1)
-  {
-    result_stream << "test::foo_overloaded(char " << int(i1) << ')';
-  }
+  void foo_overloaded(char i1) { result_stream << "test::foo_overloaded(char " << int(i1) << ')'; }
 
 #if ENABLE_TEST_OF_OVERLOADED_FUNCTIONS
   void foo_overloaded(short i1)
@@ -58,87 +52,146 @@ struct test
 
 } // end anonymous namespace
 
-int main(int argc, char* argv[])
+void test_non_const()
 {
-  auto util = TestUtilities::get_instance();
+  test t;
+  sigc::mem_fun (&test::foo)(t, 1);
+  util->check_result(result_stream, "test::foo(short 1)");
+}
 
-  if (!util->check_command_args(argc, argv))
-    return util->get_result_and_delete_instance() ? EXIT_SUCCESS : EXIT_FAILURE;
+void test_const()
+{
+  test t;
+  sigc::mem_fun (&test::foo_const)(t, 2);
+  util->check_result(result_stream, "test::foo_const(int 2)");
+}
+
+void test_const_with_const_object()
+{
+  const auto t = test();
+  sigc::mem_fun (&test::foo_const)(t, 3);
+  util->check_result(result_stream, "test::foo_const(int 3)");
+}
+
+void test_non_const_volatile()
+{
+  test t;
+  sigc::mem_fun (&test::foo_volatile)(t, 4);
+  util->check_result(result_stream, "test::foo_volatile(float 4)");
+}
+
+void test_const_volatile()
+{
+  test t;
+  sigc::mem_fun (&test::foo_const_volatile)(t, 5);
+  util->check_result(result_stream, "test::foo_const_volatile(double 5)");
+}
+
+void test_const_volatile_with_const_object()
+{
+  const auto t = test();
+  sigc::mem_fun (&test::foo_const_volatile)(t, 6);
+  util->check_result(result_stream, "test::foo_const_volatile(double 6)");
+}
 
-  { /* test non-const */
-    test t;
-    sigc::mem_fun(&test::foo)(t, 1);
-    util->check_result(result_stream, "test::foo(short 1)");
-  }
-  { /* test const */
-    test t;
-    sigc::mem_fun(&test::foo_const)(t, 2);
-    util->check_result(result_stream, "test::foo_const(int 2)");
-  }
-  { /* test const with const object */
-    const auto t = test();
-    sigc::mem_fun(&test::foo_const)(t, 3);
-    util->check_result(result_stream, "test::foo_const(int 3)");
-  }
-  { /* test non-const volatile */
-    test t;
-    sigc::mem_fun(&test::foo_volatile)(t, 4);
-    util->check_result(result_stream, "test::foo_volatile(float 4)");
-  }
-  { /* test const volatile */
-    test t;
-    sigc::mem_fun(&test::foo_const_volatile)(t, 5);
-    util->check_result(result_stream, "test::foo_const_volatile(double 5)");
-  }
-  { /* test const volatile with const object */
-    const auto t = test();
-    sigc::mem_fun(&test::foo_const_volatile)(t, 6);
-    util->check_result(result_stream, "test::foo_const_volatile(double 6)");
-  }
 #if ENABLE_TEST_OF_OVERLOADED_FUNCTIONS
-  { /* test overloaded */
-    test t;
-    sigc::mem_fun<char>(&test::foo_overloaded)(t, 7);
-    util->check_result(result_stream, "test::foo_overloaded(char 7)");
+void test_overloaded()
+{
+  test t;
+  sigc::mem_fun<char> (&test::foo_overloaded)(t, 7);
+  util->check_result(result_stream, "test::foo_overloaded(char 7)");
 
-    sigc::mem_fun<short>(&test::foo_overloaded)(t, 7);
-    util->check_result(result_stream, "test::foo_overloaded(short 7)");
+  sigc::mem_fun<short> (&test::foo_overloaded)(t, 7);
+  util->check_result(result_stream, "test::foo_overloaded(short 7)");
 
-    //sigc::mem_fun(&test::foo_overloaded)(t, 7);
-    //util->check_result(result_stream, "test::foo_overloaded(short 7)");
+  // sigc::mem_fun(&test::foo_overloaded)(t, 7);
+  // util->check_result(result_stream, "test::foo_overloaded(short 7)");
 
-    sigc::mem_fun(&test::foo_overloaded)(t, 7, 8);
-    util->check_result(result_stream, "test::foo_overloaded(int 7, int 8)");
-  }
+  sigc::mem_fun (&test::foo_overloaded)(t, 7, 8);
+  util->check_result(result_stream, "test::foo_overloaded(int 7, int 8)");
+}
 #endif
-  { /* test bound */
-    test t;
-    sigc::mem_fun(t, &test::foo)(9);
-    util->check_result(result_stream, "test::foo(short 9)");
 
-    sigc::mem_fun(t, &test::foo)(9);
-    util->check_result(result_stream, "test::foo(short 9)");
+void test_bound()
+{
+  test t;
+  sigc::mem_fun(t, &test::foo)(9);
+  util->check_result(result_stream, "test::foo(short 9)");
+
+  sigc::mem_fun(t, &test::foo)(9);
+  util->check_result(result_stream, "test::foo(short 9)");
 
-    sigc::mem_fun(t, &test::foo_const)(9);
-    util->check_result(result_stream, "test::foo_const(int 9)");
+  sigc::mem_fun(t, &test::foo_const)(9);
+  util->check_result(result_stream, "test::foo_const(int 9)");
 
-    sigc::mem_fun(t, &test::foo_const)(9);
-    util->check_result(result_stream, "test::foo_const(int 9)");
+  sigc::mem_fun(t, &test::foo_const)(9);
+  util->check_result(result_stream, "test::foo_const(int 9)");
 
-    sigc::mem_fun(t, &test::foo_volatile)(9);
-    util->check_result(result_stream, "test::foo_volatile(float 9)");
+  sigc::mem_fun(t, &test::foo_volatile)(9);
+  util->check_result(result_stream, "test::foo_volatile(float 9)");
 
-    sigc::mem_fun(t, &test::foo_volatile)(9);
-    util->check_result(result_stream, "test::foo_volatile(float 9)");
+  sigc::mem_fun(t, &test::foo_volatile)(9);
+  util->check_result(result_stream, "test::foo_volatile(float 9)");
 
 #if ENABLE_TEST_OF_OVERLOADED_FUNCTIONS
-    sigc::mem_fun(t, &test::foo_overloaded)(9, 10);
-    util->check_result(result_stream, "test::foo_overloaded(int 9, int 10)");
+  sigc::mem_fun(t, &test::foo_overloaded)(9, 10);
+  util->check_result(result_stream, "test::foo_overloaded(int 9, int 10)");
 
-    sigc::mem_fun(t, &test::foo_overloaded)(9, 10);
-    util->check_result(result_stream, "test::foo_overloaded(int 9, int 10)");
+  sigc::mem_fun(t, &test::foo_overloaded)(9, 10);
+  util->check_result(result_stream, "test::foo_overloaded(int 9, int 10)");
 #endif
+}
+
+class TestAutoDisconnect : public sigc::trackable
+{
+public:
+  void foo()
+  {
+    result_stream << "TestAutoDisconnect::foo() called.";
   }
+};
+
+void test_auto_disconnect()
+{
+  //Check that slot doesn't try to call a method on a destroyed instance,
+  //when the instance's class derives from trackable.
+  sigc::slot<void()> slot_of_member_method;
+  {
+    TestAutoDisconnect t;
+    slot_of_member_method = sigc::mem_fun(t, &TestAutoDisconnect::foo);
+
+    //The method should be called:
+    slot_of_member_method();
+    util->check_result(result_stream, "TestAutoDisconnect::foo() called.");
+  }
+
+  //The method should not be called:
+  slot_of_member_method();
+  util->check_result(result_stream, "");
+}
+
+int
+main(int argc, char* argv[])
+{
+  util = TestUtilities::get_instance();
+
+  if (!util->check_command_args(argc, argv))
+    return util->get_result_and_delete_instance() ? EXIT_SUCCESS : EXIT_FAILURE;
+
+  test_non_const();
+  test_const();
+  test_const_with_const_object();
+  test_non_const_volatile();
+  test_const_volatile();
+  test_const_volatile_with_const_object();
+
+#if ENABLE_TEST_OF_OVERLOADED_FUNCTIONS
+  test_overload();
+#endif
+
+  test_bound();
+
+  test_auto_disconnect();
 
   return util->get_result_and_delete_instance() ? EXIT_SUCCESS : EXIT_FAILURE;
 }
index 8c9a7ba..1e48e0c 100644 (file)
@@ -9,80 +9,87 @@
 namespace
 {
 
-class Something {
+class Something
+{
 public:
-  void some_func(int) { }
+  void some_func(int) {}
 
-  void some_const_func(int) const { }
+  void some_const_func(int) const {}
 
-  void some_volatile_func(int) volatile { }
+  void some_volatile_func(int) volatile {}
 
-  void some_const_volatile_func(int) const volatile { }
+  void some_const_volatile_func(int) const volatile {}
 
-  int some_int_func() {
-    return 1;
-  }
+  int some_int_func() { return 1; }
 
-  bool some_bool_func()
-  {
-    return true;
-  }
+  bool some_bool_func() { return true; }
 };
 
 } // end anonymous namespace
 
-void test_member_method_is_const()
+void
+test_member_method_is_const()
 {
   static_assert(!sigc::internal::member_method_is_const<decltype(&Something::some_func)>::value,
     "member_method_is_const failed to identify a non-const member method.");
 
-  static_assert(!sigc::internal::member_method_is_const<decltype(&Something::some_volatile_func)>::value,
+  static_assert(
+    !sigc::internal::member_method_is_const<decltype(&Something::some_volatile_func)>::value,
     "member_method_is_const failed to identify a non-const member method.");
 
-  static_assert(sigc::internal::member_method_is_const<decltype(&Something::some_const_func)>::value,
+  static_assert(
+    sigc::internal::member_method_is_const<decltype(&Something::some_const_func)>::value,
     "member_method_is_const failed to identify a const member method.");
 
-  static_assert(sigc::internal::member_method_is_const<decltype(&Something::some_const_volatile_func)>::value,
+  static_assert(
+    sigc::internal::member_method_is_const<decltype(&Something::some_const_volatile_func)>::value,
     "member_method_is_const failed to identify a const member method.");
 }
 
-void test_member_method_is_volatile()
+void
+test_member_method_is_volatile()
 {
   static_assert(!sigc::internal::member_method_is_volatile<decltype(&Something::some_func)>::value,
     "member_method_is_const failed to identify a non-volatile member method.");
 
-  static_assert(!sigc::internal::member_method_is_volatile<decltype(&Something::some_const_func)>::value,
+  static_assert(
+    !sigc::internal::member_method_is_volatile<decltype(&Something::some_const_func)>::value,
     "member_method_is_const failed to identify a non-volatile member method.");
 
-  static_assert(sigc::internal::member_method_is_volatile<decltype(&Something::some_volatile_func)>::value,
+  static_assert(
+    sigc::internal::member_method_is_volatile<decltype(&Something::some_volatile_func)>::value,
     "member_method_is_const failed to identify a volatile member method.");
 
-  static_assert(sigc::internal::member_method_is_volatile<decltype(&Something::some_const_volatile_func)>::value,
+  static_assert(sigc::internal::member_method_is_volatile<decltype(
+                  &Something::some_const_volatile_func)>::value,
     "member_method_is_const failed to identify a volatile member method.");
 }
 
-void test_member_method_class_type()
+void
+test_member_method_class_type()
 {
-  static_assert(std::is_same<
-    sigc::internal::member_method_class<decltype(&Something::some_func)>::type,
-    Something>::value,
+  static_assert(
+    std::is_same<sigc::internal::member_method_class<decltype(&Something::some_func)>::type,
+      Something>::value,
     "member_method_class_type failed to identify the class type.");
 }
 
-void test_member_method_result_type()
+void
+test_member_method_result_type()
 {
-  static_assert(std::is_same<
-    sigc::internal::member_method_result<decltype(&Something::some_int_func)>::type,
-    int>::value,
+  static_assert(
+    std::is_same<sigc::internal::member_method_result<decltype(&Something::some_int_func)>::type,
+      int>::value,
     "member_method_result_type failed to identify the result type.");
 
-  static_assert(std::is_same<
-    sigc::internal::member_method_result<decltype(&Something::some_bool_func)>::type,
-    bool>::value,
+  static_assert(
+    std::is_same<sigc::internal::member_method_result<decltype(&Something::some_bool_func)>::type,
+      bool>::value,
     "member_method_result_type failed to identify the result type.");
 }
 
-int main()
+int
+main()
 {
   test_member_method_is_const();
   test_member_method_is_volatile();
index 2ec9c0c..16c63d7 100644 (file)
@@ -8,15 +8,15 @@
 #include <sigc++/sigc++.h>
 #include <cstdlib>
 
-//TODO: put something like #ifndef FORTE ... #else ... #endif around:
+// TODO: put something like #ifndef FORTE ... #else ... #endif around:
 #define ENABLE_TEST_OF_OVERLOADED_FUNCTIONS 0
 
 namespace
 {
 std::ostringstream result_stream;
 
-//TODO: This works with clang++ (when we specify the return type, such as
-//int or void, but doesn't work with g++.
+// TODO: This works with clang++ (when we specify the return type, such as
+// int or void, but doesn't work with g++.
 /*
 int foo()
 {
@@ -25,20 +25,22 @@ int foo()
 }
 */
 
-void foo(int i1)
+void
+foo(int i1)
 {
   result_stream << "foo(int " << i1 << ")";
 }
 
 #if ENABLE_TEST_OF_OVERLOADED_FUNCTIONS
-void bar(char i1)
+void
+bar(char i1)
 {
   result_stream << "bar(char " << (int)i1 << ")";
 }
 #endif
 
-//TODO: This works with clang++ (when we specify the return type, such as
-//int or void, but doesn't work with g++.
+// TODO: This works with clang++ (when we specify the return type, such as
+// int or void, but doesn't work with g++.
 /*
 void bar(float i1)
 {
@@ -46,7 +48,8 @@ void bar(float i1)
 }
 */
 
-double bar(int i1, int i2)
+double
+bar(int i1, int i2)
 {
   result_stream << "bar(int " << i1 << ", int " << i2 << ")";
   return 1.0f;
@@ -54,49 +57,47 @@ double bar(int i1, int i2)
 
 struct test
 {
-  static void foo()
-  {
-    result_stream << "test::foo()";
-  }
+  static void foo() { result_stream << "test::foo()"; }
 };
 
 } // end anonymous namespace
 
-int main(int argc, char* argv[])
+int
+main(int argc, char* argv[])
 {
   auto util = TestUtilities::get_instance();
 
   if (!util->check_command_args(argc, argv))
     return util->get_result_and_delete_instance() ? EXIT_SUCCESS : EXIT_FAILURE;
 
-  //Test use of overloaded functions that differ by number of parameters
-  //and by return type
-  //TODO: This works with clang++ (when we specify the return type, such as
-  //int or void, but doesn't work with g++.
-  //sigc::ptr_fun<int>(&foo)();
-  //util->check_result(result_stream, "foo()");
+  // Test use of overloaded functions that differ by number of parameters
+  // and by return type
+  // TODO: This works with clang++ (when we specify the return type, such as
+  // int or void, but doesn't work with g++.
+  // sigc::ptr_fun<int>(&foo)();
+  // util->check_result(result_stream, "foo()");
 
-  sigc::ptr_fun<void>(&foo)(1);
+  sigc::ptr_fun<void> (&foo)(1);
   util->check_result(result_stream, "foo(int 1)");
 
-  //Test use of overloaded functions that differ by parameter type:
+// Test use of overloaded functions that differ by parameter type:
 #if ENABLE_TEST_OF_OVERLOADED_FUNCTIONS
-  sigc::ptr_fun<void, char>(&bar)(2);
+  sigc::ptr_fun<void, char> (&bar)(2);
   util->check_result(result_stream, "bar(char 2)");
 
-  sigc::ptr_fun<void, float>(&bar)(2.0f);
+  sigc::ptr_fun<void, float> (&bar)(2.0f);
   util->check_result(result_stream, "bar(float 2)");
 #else
-  //TODO: This works with clang++ (when we specify the return type, such as
-  //int or void, but doesn't work with g++.
-  //sigc::ptr_fun<void>(&bar)(2.0f);
-  //util->check_result(result_stream, "bar(float 2)");
+// TODO: This works with clang++ (when we specify the return type, such as
+// int or void, but doesn't work with g++.
+// sigc::ptr_fun<void>(&bar)(2.0f);
+// util->check_result(result_stream, "bar(float 2)");
 #endif
 
-  sigc::ptr_fun<double>(&bar)(3, 5);
+  sigc::ptr_fun<double> (&bar)(3, 5);
   util->check_result(result_stream, "bar(int 3, int 5)");
 
-  sigc::ptr_fun(&test::foo)();
+  sigc::ptr_fun (&test::foo)();
   util->check_result(result_stream, "test::foo()");
 
   return util->get_result_and_delete_instance() ? EXIT_SUCCESS : EXIT_FAILURE;
index 1dbb785..24f11d1 100644 (file)
@@ -29,32 +29,37 @@ struct foo : public sigc::trackable
   }
 };
 
-void bar(short s)
+void
+bar(short s)
 {
   result_stream << "bar(short " << s << ")";
 }
 
-void test_member_int()
+void
+test_member_int()
 {
   foo foo_;
   result_stream << sigc::retype(sigc::mem_fun(foo_, &foo::test_int))(1.234f);
   util->check_result(result_stream, "foo::test_int(int 1) 1.5");
 }
 
-void test_member_float()
+void
+test_member_float()
 {
   foo foo_;
   result_stream << sigc::retype(sigc::mem_fun(foo_, &foo::test_float))(5);
   util->check_result(result_stream, "foo::test_float(float 5) 25");
 }
 
-void test_ptr_fun()
+void
+test_ptr_fun()
 {
   sigc::retype(sigc::ptr_fun(&bar))(6.789f);
   util->check_result(result_stream, "bar(short 6)");
 }
 
-void test_member_int_with_slot()
+void
+test_member_int_with_slot()
 {
   foo foo_;
   sigc::slot<float(float)> s1 = sigc::retype(sigc::mem_fun(foo_, &foo::test_int));
@@ -62,7 +67,8 @@ void test_member_int_with_slot()
   util->check_result(result_stream, "foo::test_int(int 1) 1.5");
 }
 
-void test_member_float_with_slot()
+void
+test_member_float_with_slot()
 {
   foo foo_;
   sigc::slot<float(int)> s2 = sigc::retype(sigc::mem_fun(foo_, &foo::test_float));
@@ -70,14 +76,16 @@ void test_member_float_with_slot()
   util->check_result(result_stream, "foo::test_float(float 5) 25");
 }
 
-void test_ptr_fun_with_slot()
+void
+test_ptr_fun_with_slot()
 {
   sigc::slot<void(double)> s3 = sigc::retype(sigc::ptr_fun(&bar));
   s3(6.789);
   util->check_result(result_stream, "bar(short 6)");
 }
 
-void test_retype_slot()
+void
+test_retype_slot()
 {
   foo foo_;
   sigc::slot<float(float)> s1 = sigc::retype(sigc::mem_fun(foo_, &foo::test_int));
@@ -88,7 +96,8 @@ void test_retype_slot()
 
 } // end anonymous namespace
 
-int main(int argc, char* argv[])
+int
+main(int argc, char* argv[])
 {
   util = TestUtilities::get_instance();
 
index 2d02cac..99ddd0a 100644 (file)
@@ -43,7 +43,8 @@ struct bar : public sigc::trackable, public sigc::functor_base
 
 } // end anonymous namespace
 
-int main(int argc, char* argv[])
+int
+main(int argc, char* argv[])
 {
   auto util = TestUtilities::get_instance();
 
index e95bd6e..2ad67f6 100644 (file)
@@ -17,7 +17,8 @@ namespace
 TestUtilities* util = nullptr;
 std::ostringstream result_stream;
 
-int foo(int i)
+int
+foo(int i)
 {
   result_stream << "foo(int " << i << ") ";
   return 1;
@@ -38,7 +39,8 @@ struct A : public sigc::trackable
   }
 };
 
-void test_empty_signal()
+void
+test_empty_signal()
 {
   // signal
   sigc::signal<int(int)> sig;
@@ -48,7 +50,8 @@ void test_empty_signal()
   util->check_result(result_stream, "");
 }
 
-void test_simple()
+void
+test_simple()
 {
   sigc::signal<int(int)> sig;
   sig.connect(sigc::ptr_fun(&foo));
@@ -57,13 +60,15 @@ void test_simple()
   util->check_result(result_stream, "foo(int 1) ");
 }
 
-int bar(float i)
+int
+bar(float i)
 {
   result_stream << "bar(float " << i << ") ";
   return 1;
 }
 
-void test_auto_disconnection()
+void
+test_auto_disconnection()
 {
   // signal
   sigc::signal<int(int)> sig;
@@ -85,7 +90,8 @@ void test_auto_disconnection()
   util->check_result(result_stream, "foo(int 2) bar(float 2) 2");
 }
 
-void test_reference()
+void
+test_reference()
 {
   // test reference
   A a;
@@ -97,7 +103,8 @@ void test_reference()
   util->check_result(result_stream, "A::foo(string 'guest book') foo was here");
 }
 
-void test_make_slot()
+void
+test_make_slot()
 {
   // test make_slot()
   sigc::signal<int(int)> sig;
@@ -112,7 +119,8 @@ void test_make_slot()
 
 } // end anonymous namespace
 
-int main(int argc, char* argv[])
+int
+main(int argc, char* argv[])
 {
   util = TestUtilities::get_instance();
 
index cd9e69f..85f1199 100644 (file)
@@ -14,7 +14,8 @@ namespace
 {
 std::ostringstream result_stream;
 
-int foo(int i)
+int
+foo(int i)
 {
   result_stream << "foo(int " << i << ")";
   return 1;
@@ -22,7 +23,8 @@ int foo(int i)
 
 } // end anonymous namespace
 
-int main(int argc, char* argv[])
+int
+main(int argc, char* argv[])
 {
   auto util = TestUtilities::get_instance();
 
@@ -35,13 +37,13 @@ int main(int argc, char* argv[])
   sig(1);
   util->check_result(result_stream, "foo(int 1)");
 
-  //Test the move constructor:
+  // Test the move constructor:
   sigc::signal<int(int)> sig2(std::move(sig));
   sig(-2);
   sig2(2);
   util->check_result(result_stream, "foo(int 2)");
 
-  //Test the move assignment operator:
+  // Test the move assignment operator:
   sigc::signal<int(int)> sig3;
   sig3 = std::move(sig2);
   sig2(-3);
index 9aeecb0..d68cfa8 100644 (file)
@@ -21,7 +21,8 @@ struct A
 };
 } // end anonymous namespace
 
-int main(int argc, char* argv[])
+int
+main(int argc, char* argv[])
 {
   auto util = TestUtilities::get_instance();
 
@@ -35,16 +36,20 @@ int main(int argc, char* argv[])
     std::cout << "  trackable:               " << sizeof(sigc::trackable) << std::endl;
     std::cout << "  slot<void()>:              " << sizeof(sigc::slot<void()>) << std::endl;
     std::cout << "  signal<void()>:            " << sizeof(sigc::signal<void()>) << std::endl;
-    std::cout << "  signal<void()>::iterator:  " << sizeof(sigc::signal<void()>::iterator) << std::endl;
+    std::cout << "  signal<void()>::iterator:  " << sizeof(sigc::signal<void()>::iterator)
+              << std::endl;
     std::cout << "  connection:              " << sizeof(sigc::connection) << std::endl;
 
     std::cout << std::endl << "sizes of internal classes:" << std::endl;
 
-    std::cout << "  trackable_callback:      " << sizeof(sigc::internal::trackable_callback) << std::endl;
-    std::cout << "  trackable_callback_list: " << sizeof(sigc::internal::trackable_callback_list) << std::endl;
+    std::cout << "  trackable_callback:      " << sizeof(sigc::internal::trackable_callback)
+              << std::endl;
+    std::cout << "  trackable_callback_list: " << sizeof(sigc::internal::trackable_callback_list)
+              << std::endl;
     std::cout << "  slot_rep:                " << sizeof(sigc::internal::slot_rep) << std::endl;
     std::cout << "  typed_slot_rep<mem_functor<void,A> >: "
-              << sizeof(sigc::internal::typed_slot_rep<sigc::mem_functor<void (A::*)()> >) << std::endl;
+              << sizeof(sigc::internal::typed_slot_rep<sigc::mem_functor<void (A::*)()>>)
+              << std::endl;
     std::cout << "  signal_impl:             " << sizeof(sigc::internal::signal_impl) << std::endl;
   }
   return util->get_result_and_delete_instance() ? EXIT_SUCCESS : EXIT_FAILURE;
index d9a5385..87080e9 100644 (file)
@@ -8,8 +8,8 @@
 #include <string>
 #include <cstdlib>
 
-//The Tru64 compiler seems to need this to avoid an unresolved symbol
-//See bug #161503
+// The Tru64 compiler seems to need this to avoid an unresolved symbol
+// See bug #161503
 #include <new>
 
 namespace
@@ -21,24 +21,19 @@ std::ostringstream result_stream;
 class foo
 {
 public:
-  void operator()(int i)
-  {
-    result_stream << "foo(int " << i << ")";
-  }
+  void operator()(int i) { result_stream << "foo(int " << i << ")"; }
 
   void operator()(std::string& str)
   {
     result_stream << "foo(string '" << str << "') ";
-    str="foo was here";
+    str = "foo was here";
   }
 
-  void operator()(int, int)
-  {
-    result_stream << "foo(int, int)";
-  }
+  void operator()(int, int) { result_stream << "foo(int, int)"; }
 };
 
-void test_simple()
+void
+test_simple()
 {
   // simple test
   sigc::slot<void(int)> s1 = foo();
@@ -50,7 +45,8 @@ void test_simple()
   util->check_result(result_stream, "foo(int 2)");
 }
 
-void test_implicit_conversion()
+void
+test_implicit_conversion()
 {
   // test implicit conversion
   sigc::slot<void(char)> s2 = foo();
@@ -58,7 +54,8 @@ void test_implicit_conversion()
   util->check_result(result_stream, "foo(int 3)");
 }
 
-void test_reference()
+void
+test_reference()
 {
   // test reference
   sigc::slot<void(std::string&)> sl1 = foo();
@@ -68,7 +65,8 @@ void test_reference()
   util->check_result(result_stream, "foo(string 'guest book') foo was here");
 }
 
-void test_operator_equals()
+void
+test_operator_equals()
 {
   // test operator=
   std::string str = "guest book";
@@ -81,7 +79,8 @@ void test_operator_equals()
   util->check_result(result_stream, "foo(string 'guest book') foo was here");
 }
 
-void test_copy_ctor()
+void
+test_copy_ctor()
 {
   // test copy ctor
   sigc::slot<void(int)> s1 = foo();
@@ -92,7 +91,8 @@ void test_copy_ctor()
 
 } // end anonymous namespace
 
-int main(int argc, char* argv[])
+int
+main(int argc, char* argv[])
 {
   util = TestUtilities::get_instance();
 
index 12171a6..e0af085 100644 (file)
@@ -12,26 +12,29 @@ namespace
 {
 std::ostringstream result_stream;
 
-void Foo()
+void
+Foo()
 {
   result_stream << "Foo";
 }
 
-void Bar()
+void
+Bar()
 {
   result_stream << "Bar";
 }
 
 } // end anonymous namespace
 
-int main(int argc, char* argv[])
+int
+main(int argc, char* argv[])
 {
   auto util = TestUtilities::get_instance();
 
   if (!util->check_command_args(argc, argv))
     return util->get_result_and_delete_instance() ? EXIT_SUCCESS : EXIT_FAILURE;
 
-  //Note that sigc::ptr_fun() creates a sig::pointer_functor.
+  // Note that sigc::ptr_fun() creates a sig::pointer_functor.
   sigc::slot<void()> theSlot(sigc::ptr_fun(&Foo));
   theSlot();
   util->check_result(result_stream, "Foo");
index b35853f..7785867 100644 (file)
@@ -8,8 +8,8 @@
 #include <string>
 #include <cstdlib>
 
-//The Tru64 compiler seems to need this to avoid an unresolved symbol
-//See bug #161503
+// The Tru64 compiler seems to need this to avoid an unresolved symbol
+// See bug #161503
 #include <new>
 
 namespace
@@ -19,26 +19,21 @@ std::ostringstream result_stream;
 class foo
 {
 public:
-  void operator()(int i)
-  {
-    result_stream << "foo(int " << i << ")";
-  }
+  void operator()(int i) { result_stream << "foo(int " << i << ")"; }
 
   void operator()(std::string& str)
   {
     result_stream << "foo(string '" << str << "') ";
-    str="foo was here";
+    str = "foo was here";
   }
 
-  void operator()(int, int)
-  {
-    result_stream << "foo(int, int)";
-  }
+  void operator()(int, int) { result_stream << "foo(int, int)"; }
 };
 
 } // end anonymous namespace
 
-int main(int argc, char* argv[])
+int
+main(int argc, char* argv[])
 {
   auto util = TestUtilities::get_instance();
 
index e305062..afe3af9 100644 (file)
@@ -33,7 +33,6 @@
 //   echo $?
 // If test_track_obj writes nothing and the return code is 0, the test has passed.
 
-
 #include "testutilities.h"
 #include <string>
 #include <iostream>
@@ -42,7 +41,6 @@
 #include <sigc++/adaptors/track_obj.h>
 #include <sigc++/signal.h>
 
-
 namespace
 {
 std::ostringstream result_stream;
@@ -50,8 +48,8 @@ std::ostringstream result_stream;
 struct book : public sigc::trackable
 {
   explicit book(const std::string& name) : name_(name) {}
-  operator std::string& () { return name_; }
-  operator const std::string& () const { return name_; }
+  operator std::string&() { return name_; }
+  operator const std::string&() const { return name_; }
   std::string name_;
 };
 
@@ -64,13 +62,9 @@ class Functor1 : public sigc::functor_base
 public:
   using result_type = std::string;
 
-  Functor1(const bar_group4& bar)
-  : bar_(bar) {}
+  Functor1(const bar_group4& bar) : bar_(bar) {}
 
-  std::string operator()(int i)
-  {
-    return (i<0) ? "negative" : ((i>0) ? "positive" : "zero");
-  }
+  std::string operator()(int i) { return (i < 0) ? "negative" : ((i > 0) ? "positive" : "zero"); }
 
 private:
   const bar_group4& bar_;
@@ -81,12 +75,11 @@ class Functor2 : public sigc::functor_base
 public:
   using result_type = std::string;
 
-  Functor2(const bar_group4& bar, const book& aBook)
-  : bar_(bar), aBook_(aBook) {}
+  Functor2(const bar_group4& bar, const book& aBook) : bar_(bar), aBook_(aBook) {}
 
   std::string operator()(int i, const std::string& str) const
   {
-    std::string result = (i<0) ? "negative, " : ((i>0) ? "positive, " : "zero, ");
+    std::string result = (i < 0) ? "negative, " : ((i > 0) ? "positive, " : "zero, ");
     result += str;
     result += aBook_;
     return result;
@@ -97,29 +90,32 @@ private:
   const book& aBook_;
 };
 
-//C++11 lamba expressions:
+// C++11 lamba expressions:
 
-inline std::ostringstream& operator << (std::ostringstream& s, const book& b)
+inline std::ostringstream&
+operator<<(std::ostringstream& s, const book& b)
 {
   s << b.name_;
   return s;
 }
 
-void egon(std::string& str)
+void
+egon(std::string& str)
 {
   result_stream << "egon(string '" << str << "')";
   str = "egon was here";
 }
 
-void foo_group4(bar_group4&)
+void
+foo_group4(bar_group4&)
 {
   result_stream << "foo_group4(bar_group4&)";
 }
 
 } // end anonymous namespace
 
-
-int main(int argc, char* argv[])
+int
+main(int argc, char* argv[])
 {
   auto util = TestUtilities::get_instance();
 
@@ -156,8 +152,7 @@ int main(int argc, char* argv[])
   delete pbar4;
   pbar4 = nullptr;
 
-
-//C++11 lambda expressions:
+  // C++11 lambda expressions:
 
   // auto-disconnect
   // If you want to auto-disconnect a slot with a C++11 lambda expression
@@ -166,8 +161,10 @@ int main(int argc, char* argv[])
   sigc::slot<void(std::ostringstream&)> sl10;
   {
     book guest_book("karl");
-    // sl1 = [&guest_book](std::ostringstream& stream){ stream << guest_book << "\n"; }; // no auto-disconnect
-    sl10 = sigc::track_obj([&guest_book](std::ostringstream& stream){ stream << guest_book; }, guest_book);
+    // sl1 = [&guest_book](std::ostringstream& stream){ stream << guest_book << "\n"; }; // no
+    // auto-disconnect
+    sl10 = sigc::track_obj(
+      [&guest_book](std::ostringstream& stream) { stream << guest_book; }, guest_book);
     sl10(result_stream);
     util->check_result(result_stream, "karl");
 
@@ -182,7 +179,7 @@ int main(int argc, char* argv[])
     book guest_book("karl");
     // sl2 = [&guest_book] () { egon(guest_book); }; // no auto-disconnect
     // sl2 = std::bind(&egon, std::ref(guest_book)); // does not compile (gcc 4.6.3)
-    sl20 = sigc::track_obj([&guest_book] () { egon(guest_book); }, guest_book);
+    sl20 = sigc::track_obj([&guest_book]() { egon(guest_book); }, guest_book);
     sl20();
     util->check_result(result_stream, "egon(string 'karl')");
 
@@ -194,19 +191,19 @@ int main(int argc, char* argv[])
   sl20();
   util->check_result(result_stream, "");
 
-
   // Code example in the documentation sigc++/adaptors/macros/track_obj.h.m4
   // -----------------------------------------------------------------------
   {
-    //struct bar : public sigc::trackable {} some_bar;
+    // struct bar : public sigc::trackable {} some_bar;
     sigc::signal<void()> some_signal;
     {
       bar_group4 some_bar;
-      //some_signal.connect(sigc::group(&foo, std::ref(some_bar)));
+      // some_signal.connect(sigc::group(&foo, std::ref(some_bar)));
       // disconnected automatically if some_bar goes out of scope
-      //some_signal.connect([&some_bar](){ foo_group4(some_bar); }); // no auto-disconnect
-      //some_signal.connect(sigc::bind(&foo_group4, std::ref(some_bar))); // auto-disconnects, but we prefer C++11 lambda
-      some_signal.connect(sigc::track_obj([&some_bar](){ foo_group4(some_bar); }, some_bar));
+      // some_signal.connect([&some_bar](){ foo_group4(some_bar); }); // no auto-disconnect
+      // some_signal.connect(sigc::bind(&foo_group4, std::ref(some_bar))); // auto-disconnects, but
+      // we prefer C++11 lambda
+      some_signal.connect(sigc::track_obj([&some_bar]() { foo_group4(some_bar); }, some_bar));
       some_signal.emit();
       util->check_result(result_stream, "foo_group4(bar_group4&)");
 
@@ -216,6 +213,5 @@ int main(int argc, char* argv[])
     util->check_result(result_stream, "");
   }
 
-
   return util->get_result_and_delete_instance() ? EXIT_SUCCESS : EXIT_FAILURE;
 }
index daba58b..2886a9c 100644 (file)
@@ -14,20 +14,18 @@ namespace
 {
 std::ostringstream result_stream;
 
-class my_class: public sigc::trackable
+class my_class : public sigc::trackable
 {
 public:
   int i;
 
-  void foo()
-  {
-    result_stream << i;
-  }
+  void foo() { result_stream << i; }
 };
 
 } // end anonymous namespace
 
-int main(int argc, char* argv[])
+int
+main(int argc, char* argv[])
 {
   auto util = TestUtilities::get_instance();
 
index 664f769..b0208b6 100644 (file)
@@ -14,23 +14,15 @@ namespace
 {
 std::ostringstream result_stream;
 
-class my_class: public sigc::trackable
+class my_class : public sigc::trackable
 {
 public:
-
-  my_class()
-  : i(0)
-  {}
+  my_class() : i(0) {}
 
   my_class(const my_class& src) = delete;
   my_class& operator=(const my_class& src) = delete;
 
-  my_class(my_class&& src)
-  : sigc::trackable(std::move(src)),
-    i(std::move(src.i))
-  {
-    src.i = 0;
-  }
+  my_class(my_class&& src) : sigc::trackable(std::move(src)), i(std::move(src.i)) { src.i = 0; }
 
   my_class& operator=(my_class&& src)
   {
@@ -40,17 +32,15 @@ public:
     return *this;
   }
 
-  void foo()
-  {
-    result_stream << i;
-  }
+  void foo() { result_stream << i; }
 
   int i;
 };
 
 } // end anonymous namespace
 
-int main(int argc, char* argv[])
+int
+main(int argc, char* argv[])
 {
   auto util = TestUtilities::get_instance();
 
@@ -65,7 +55,7 @@ int main(int argc, char* argv[])
     sl();
     util->check_result(result_stream, "10");
 
-    //Create another trackable via a move:
+    // Create another trackable via a move:
     my_class t2(std::move(t));
     t2.i = 15;
     result_stream.clear();
index 028a15f..e6355bf 100644 (file)
 #include <functional>
 
 void
-test_tuple_type_cdr() {
+test_tuple_type_cdr()
+{
   using type_tuple_isd = std::tuple<int, short, double>;
   using type_tuple_sd = std::tuple<short, double>;
   using type_tuple_suffix = sigc::internal::tuple_type_cdr<type_tuple_isd>::type;
 
-  static_assert(std::tuple_size<type_tuple_suffix>::value == 2,
-    "unexpected tuple_cdr()ed tuple size.");
-  static_assert(std::is_same<type_tuple_suffix, type_tuple_sd>::value,
-    "unexpected tuple_cdr()ed tuple type");
+  static_assert(
+    std::tuple_size<type_tuple_suffix>::value == 2, "unexpected tuple_cdr()ed tuple size.");
+  static_assert(
+    std::is_same<type_tuple_suffix, type_tuple_sd>::value, "unexpected tuple_cdr()ed tuple type");
 }
 
 void
-test_tuple_cdr() {
-  auto t_larger =
-    std::make_tuple(nullptr, std::string("hello"), std::string("world"));
+test_tuple_cdr()
+{
+  auto t_larger = std::make_tuple(nullptr, std::string("hello"), std::string("world"));
   auto t_suffix = sigc::internal::tuple_cdr(t_larger);
   assert(std::get<0>(t_suffix) == "hello");
   assert(std::get<1>(t_suffix) == "world");
 
   using type_tuple_suffix = std::tuple<std::string, std::string>;
 
-  static_assert(std::tuple_size<decltype(t_suffix)>::value == 2,
-    "unexpected cdr()ed tuple size.");
-  static_assert(std::is_same<decltype(t_suffix), type_tuple_suffix>::value,
-    "unexpected cdr()ed tuple type");
+  static_assert(std::tuple_size<decltype(t_suffix)>::value == 2, "unexpected cdr()ed tuple size.");
+  static_assert(
+    std::is_same<decltype(t_suffix), type_tuple_suffix>::value, "unexpected cdr()ed tuple type");
 }
 
 void
-test_tuple_cdr_stdref() {
+test_tuple_cdr_stdref()
+{
   std::string b = "yadda";
   std::string c = "yaddayadda";
   auto t_larger = std::make_tuple(1, std::ref(b), std::ref(c));
 
-  //std::cout << "debug: " << type(std::get<1>(t_larger)) << std::endl;
+  // std::cout << "debug: " << type(std::get<1>(t_larger)) << std::endl;
 
   auto t_suffix = sigc::internal::tuple_cdr(t_larger);
   b = "hello";
   c = "world";
-  //This works, but it's not what we are testing here:
-  //assert(std::get<1>(t_larger) == "hello");
+  // This works, but it's not what we are testing here:
+  // assert(std::get<1>(t_larger) == "hello");
 
   assert(std::get<0>(t_suffix) == "hello");
   assert(std::get<1>(t_suffix) == "world");
 }
 
-constexpr
-void
-test_tuple_cdr_constexpr() {
+constexpr void
+test_tuple_cdr_constexpr()
+{
   constexpr auto str_hello = "hello";
   constexpr auto str_world = "world";
 
-  constexpr auto t_larger =
-    std::make_tuple(nullptr, str_hello, str_world);
+  constexpr auto t_larger = std::make_tuple(nullptr, str_hello, str_world);
   constexpr auto t_suffix = sigc::internal::tuple_cdr(t_larger);
   assert(std::get<0>(t_suffix) == str_hello);
   assert(std::get<1>(t_suffix) == str_world);
 }
 
 int
-main() {
+main()
+{
   test_tuple_type_cdr();
   test_tuple_cdr();
   test_tuple_cdr_stdref();
index 66635f3..dcd4008 100644 (file)
 #include <functional>
 
 void
-test_tuple_end() {
+test_tuple_end()
+{
   {
-    auto t_original =
-      std::make_tuple(nullptr, std::string("hello"), std::string("world"));
+    auto t_original = std::make_tuple(nullptr, std::string("hello"), std::string("world"));
     auto t_suffix = sigc::internal::tuple_end<3>(t_original);
 
-    static_assert(std::tuple_size<decltype(t_suffix)>::value == 3,
-      "unexpected tuple_end()ed tuple size.");
+    static_assert(
+      std::tuple_size<decltype(t_suffix)>::value == 3, "unexpected tuple_end()ed tuple size.");
 
     assert(std::get<0>(t_suffix) == nullptr);
     assert(std::get<1>(t_suffix) == "hello");
@@ -38,39 +38,38 @@ test_tuple_end() {
   }
 
   {
-    auto t_original =
-      std::make_tuple(nullptr, std::string("hello"), std::string("world"));
+    auto t_original = std::make_tuple(nullptr, std::string("hello"), std::string("world"));
     auto t_suffix = sigc::internal::tuple_end<2>(t_original);
 
-    static_assert(std::tuple_size<decltype(t_suffix)>::value == 2,
-      "unexpected tuple_end()ed tuple size.");
+    static_assert(
+      std::tuple_size<decltype(t_suffix)>::value == 2, "unexpected tuple_end()ed tuple size.");
 
     assert(std::get<0>(t_suffix) == "hello");
     assert(std::get<1>(t_suffix) == "world");
 
     using type_tuple_suffix = std::tuple<std::string, std::string>;
-    static_assert(std::is_same<decltype(t_suffix), type_tuple_suffix>::value,
-      "unexpected end()ed tuple type");
+    static_assert(
+      std::is_same<decltype(t_suffix), type_tuple_suffix>::value, "unexpected end()ed tuple type");
   }
 
   {
-    auto t_original =
-      std::make_tuple(nullptr, std::string("hello"), std::string("world"));
+    auto t_original = std::make_tuple(nullptr, std::string("hello"), std::string("world"));
     auto t_suffix = sigc::internal::tuple_end<1>(t_original);
 
-    static_assert(std::tuple_size<decltype(t_suffix)>::value == 1,
-      "unexpected tuple_end()ed tuple size.");
+    static_assert(
+      std::tuple_size<decltype(t_suffix)>::value == 1, "unexpected tuple_end()ed tuple size.");
 
     assert(std::get<0>(t_suffix) == "world");
 
     using type_tuple_suffix = std::tuple<std::string>;
-    static_assert(std::is_same<decltype(t_suffix), type_tuple_suffix>::value,
-      "unexpected end()ed tuple type");
+    static_assert(
+      std::is_same<decltype(t_suffix), type_tuple_suffix>::value, "unexpected end()ed tuple type");
   }
 }
 
 void
-test_tuple_end_stdref() {
+test_tuple_end_stdref()
+{
   std::string c = "yadda";
   std::string d = "yaddayadda";
   auto t_larger = std::make_tuple(1, 2, std::ref(c), std::ref(d));
@@ -78,33 +77,32 @@ test_tuple_end_stdref() {
   auto t_suffix = sigc::internal::tuple_end<2>(t_larger);
   c = "hello";
   d = "world";
-  //This works, but it's not what we are testing here:
-  //assert(std::get<0>(t_larger) == "hello");
+  // This works, but it's not what we are testing here:
+  // assert(std::get<0>(t_larger) == "hello");
 
   assert(std::get<0>(t_suffix) == "hello");
   assert(std::get<1>(t_suffix) == "world");
 }
 
-
-constexpr
-void
-test_tuple_end_constexpr() {
+constexpr void
+test_tuple_end_constexpr()
+{
   constexpr auto str_hello = "hello";
   constexpr auto str_world = "world";
 
-  constexpr auto t_original =
-    std::make_tuple(nullptr, str_hello, str_world);
+  constexpr auto t_original = std::make_tuple(nullptr, str_hello, str_world);
   constexpr auto t_suffix = sigc::internal::tuple_end<2>(t_original);
 
-  static_assert(std::tuple_size<decltype(t_suffix)>::value == 2,
-    "unexpected tuple_end()ed tuple size.");
+  static_assert(
+    std::tuple_size<decltype(t_suffix)>::value == 2, "unexpected tuple_end()ed tuple size.");
 
   assert(std::get<0>(t_suffix) == str_hello);
   assert(std::get<1>(t_suffix) == str_world);
 }
 
 int
-main() {
+main()
+{
   test_tuple_end();
   test_tuple_end_stdref();
 
index ec5f42e..6514b57 100644 (file)
 #include <functional>
 
 template <class T_element_from>
-class for_each_simple {
+class for_each_simple
+{
 public:
-  static void
-  visit(const T_element_from& from) {
+  static void visit(const T_element_from& from)
+  {
     std::cout << "for_each_simple(): " << std::to_string(from) << std::endl;
   }
 };
 
 void
-test_tuple_for_each_same_types() {
+test_tuple_for_each_same_types()
+{
   {
     auto t_original = std::make_tuple(1, 2, 3);
     sigc::internal::tuple_for_each<for_each_simple>(t_original);
@@ -45,35 +47,35 @@ test_tuple_for_each_same_types() {
 }
 
 template <class T_element_from>
-class for_each_simple_with_extras {
+class for_each_simple_with_extras
+{
 public:
-  static void
-  visit(const T_element_from& from, int extra1, const std::string& extra2) {
+  static void visit(const T_element_from& from, int extra1, const std::string& extra2)
+  {
     std::cout << "for_each_simple_with_extras(): from=" << std::to_string(from)
               << ", extra1: " << extra1 << ", extra2: " << extra2 << std::endl;
   }
 };
 
 void
-test_tuple_for_each_same_types_with_extras() {
+test_tuple_for_each_same_types_with_extras()
+{
   {
     auto t_original = std::make_tuple(1, (double)2.1f, 3);
-    sigc::internal::tuple_for_each<for_each_simple_with_extras>(
-      t_original, 89, "eightynine");
+    sigc::internal::tuple_for_each<for_each_simple_with_extras>(t_original, 89, "eightynine");
   }
 }
 
 template <class T_element_from>
-class for_each_simple_with_nonconst_extras {
+class for_each_simple_with_nonconst_extras
+{
 public:
-  static void
-  visit(const T_element_from& from, int& extra) {
-    extra += (int)from;
-  }
+  static void visit(const T_element_from& from, int& extra) { extra += (int)from; }
 };
 
 void
-test_tuple_for_each_same_types_with_nonconst_extras() {
+test_tuple_for_each_same_types_with_nonconst_extras()
+{
   {
     auto t_original = std::make_tuple(1, (double)2.1f, 3);
     int extra = 0;
@@ -92,66 +94,69 @@ class visitor_with_specializations;
 
 // An int will be converted to a std::string:
 template <>
-class visitor_with_specializations<int> {
+class visitor_with_specializations<int>
+{
 public:
-  static void
-  visit(const int& from) {
-    std::cout << "visitor_with_specializations::visit(): "
-              << std::to_string(from) << std::endl;
+  static void visit(const int& from)
+  {
+    std::cout << "visitor_with_specializations::visit(): " << std::to_string(from) << std::endl;
   }
 };
 
 // A double will be converted to a char:
 template <>
-class visitor_with_specializations<double> {
+class visitor_with_specializations<double>
+{
 public:
-  static void
-  visit(const double& from) {
-    std::cout << "visitor_with_specializations::visit(): "
-              << std::to_string(from)[0] << std::endl;
+  static void visit(const double& from)
+  {
+    std::cout << "visitor_with_specializations::visit(): " << std::to_string(from)[0] << std::endl;
   }
 };
 
 // A std::string will be converted to an int:
 template <>
-class visitor_with_specializations<std::string> {
+class visitor_with_specializations<std::string>
+{
 public:
-  static void
-  visit(const std::string& from) {
-    std::cout << "visitor_with_specializations::visit(): " << std::stoi(from)
-              << std::endl;
+  static void visit(const std::string& from)
+  {
+    std::cout << "visitor_with_specializations::visit(): " << std::stoi(from) << std::endl;
   }
 };
 
 // A const char* will be converted to an int:
 template <>
-class visitor_with_specializations<const char*> {
+class visitor_with_specializations<const char*>
+{
 public:
-  static void
-  visit(const char* from) {
-    std::cout << "visitor_with_specializations::visit(): " << std::stoi(from)
-              << std::endl;
+  static void visit(const char* from)
+  {
+    std::cout << "visitor_with_specializations::visit(): " << std::stoi(from) << std::endl;
   }
 };
 
 void
-test_tuple_for_each_multiple_types() {
+test_tuple_for_each_multiple_types()
+{
   auto t_original = std::make_tuple(1, (double)2.1f, std::string("3"));
   sigc::internal::tuple_for_each<visitor_with_specializations>(t_original);
 }
 
 template <class T_element_from>
-class for_each_nonconst {
+class for_each_nonconst
+{
 public:
-  static void
-  visit(T_element_from& from) {
+  static void visit(T_element_from& from)
+  {
     from *= 2;
     // Or, for instance, call a non-const method on from.
   }
 };
 
 void
-test_tuple_for_each_nonconst() {
+test_tuple_for_each_nonconst()
+{
   auto t = std::make_tuple(1, 2, 3);
   sigc::internal::tuple_for_each<for_each_nonconst, decltype(t)&>(t);
   std::cout << std::get<0>(t) << std::endl;
@@ -161,7 +166,8 @@ test_tuple_for_each_nonconst() {
 }
 
 void
-test_tuple_for_each_stdref() {
+test_tuple_for_each_stdref()
+{
   {
     int a = 1;
     int b = 2;
@@ -185,39 +191,43 @@ test_tuple_for_each_stdref() {
 static std::string correct_sequence_output;
 
 template <class T_element_from>
-class for_each_correct_sequence {
+class for_each_correct_sequence
+{
 public:
-  static void
-  visit(const T_element_from& from) {
-    //std::cout << "from: " << from << std::endl;
+  static void visit(const T_element_from& from)
+  {
+    // std::cout << "from: " << from << std::endl;
     correct_sequence_output += std::to_string(from);
   }
 };
 
 void
-test_tuple_for_each_correct_sequence() {
+test_tuple_for_each_correct_sequence()
+{
   correct_sequence_output.clear();
   auto t = std::make_tuple(1, 2, 3);
   sigc::internal::tuple_for_each<for_each_correct_sequence>(t);
-  //std::cout << "correct_sequence_output: " << correct_sequence_output << std::endl;
+  // std::cout << "correct_sequence_output: " << correct_sequence_output << std::endl;
   assert(correct_sequence_output == "123");
 }
 
 void
-test_tuple_for_each_empty_tuple() {
+test_tuple_for_each_empty_tuple()
+{
   auto t = std::tuple<>();
   sigc::internal::tuple_for_each<for_each_simple>(t);
 }
 
-constexpr
-void
-test_tuple_for_each_constexpr() {
+constexpr void
+test_tuple_for_each_constexpr()
+{
   constexpr auto t_original = std::make_tuple(1, (double)2.1f, "3");
   sigc::internal::tuple_for_each<visitor_with_specializations>(t_original);
 }
 
 int
-main() {
+main()
+{
   test_tuple_for_each_same_types();
   test_tuple_for_each_same_types_with_extras();
   test_tuple_for_each_same_types_with_nonconst_extras();
@@ -225,7 +235,7 @@ main() {
   test_tuple_for_each_multiple_types();
 
   test_tuple_for_each_nonconst();
-  
+
   test_tuple_for_each_stdref();
 
   test_tuple_for_each_correct_sequence();
index 3d136bf..5c9e11b 100644 (file)
@@ -20,7 +20,8 @@
 #include <functional>
 
 void
-test_tuple_type_start() {
+test_tuple_type_start()
+{
   {
     using type_tuple = std::tuple<int, short, double>;
     using type_tuple_start = sigc::internal::tuple_type_start<type_tuple, 1>::type;
@@ -50,14 +51,14 @@ test_tuple_type_start() {
 }
 
 void
-test_tuple_start() {
+test_tuple_start()
+{
   {
-    auto t_original =
-      std::make_tuple(nullptr, std::string("hello"), std::string("world"));
+    auto t_original = std::make_tuple(nullptr, std::string("hello"), std::string("world"));
     auto t_prefix = sigc::internal::tuple_start<3>(t_original);
 
-    static_assert(std::tuple_size<decltype(t_prefix)>::value == 3,
-      "unexpected tuple_start()ed tuple size.");
+    static_assert(
+      std::tuple_size<decltype(t_prefix)>::value == 3, "unexpected tuple_start()ed tuple size.");
 
     assert(std::get<0>(t_prefix) == nullptr);
     assert(std::get<1>(t_prefix) == "hello");
@@ -68,12 +69,11 @@ test_tuple_start() {
   }
 
   {
-    auto t_original =
-      std::make_tuple(nullptr, std::string("hello"), std::string("world"));
+    auto t_original = std::make_tuple(nullptr, std::string("hello"), std::string("world"));
     auto t_prefix = sigc::internal::tuple_start<2>(t_original);
 
-    static_assert(std::tuple_size<decltype(t_prefix)>::value == 2,
-      "unexpected tuple_start()ed tuple size.");
+    static_assert(
+      std::tuple_size<decltype(t_prefix)>::value == 2, "unexpected tuple_start()ed tuple size.");
 
     assert(std::get<0>(t_prefix) == nullptr);
     assert(std::get<1>(t_prefix) == "hello");
@@ -84,12 +84,11 @@ test_tuple_start() {
   }
 
   {
-    auto t_original =
-      std::make_tuple(nullptr, std::string("hello"), std::string("world"));
+    auto t_original = std::make_tuple(nullptr, std::string("hello"), std::string("world"));
     auto t_prefix = sigc::internal::tuple_start<1>(t_original);
 
-    static_assert(std::tuple_size<decltype(t_prefix)>::value == 1,
-      "unexpected tuple_start()ed tuple size.");
+    static_assert(
+      std::tuple_size<decltype(t_prefix)>::value == 1, "unexpected tuple_start()ed tuple size.");
 
     assert(std::get<0>(t_prefix) == nullptr);
 
@@ -100,7 +99,8 @@ test_tuple_start() {
 }
 
 void
-test_tuple_start_stdref() {
+test_tuple_start_stdref()
+{
   std::string a = "yadda";
   std::string b = "yaddayadda";
   auto t_larger = std::make_tuple(std::ref(a), std::ref(b), 1);
@@ -108,32 +108,32 @@ test_tuple_start_stdref() {
   auto t_prefix = sigc::internal::tuple_start<2>(t_larger);
   a = "hello";
   b = "world";
-  //This works, but it's not what we are testing here:
-  //assert(std::get<0>(t_larger) == "hello");
+  // This works, but it's not what we are testing here:
+  // assert(std::get<0>(t_larger) == "hello");
 
   assert(std::get<0>(t_prefix) == "hello");
   assert(std::get<1>(t_prefix) == "world");
 }
 
-constexpr
-void
-test_tuple_start_constexpr() {
+constexpr void
+test_tuple_start_constexpr()
+{
   constexpr auto str_hello = "hello";
   constexpr auto str_world = "hello";
 
-  constexpr auto t_original =
-    std::make_tuple(nullptr, str_hello, str_world);
+  constexpr auto t_original = std::make_tuple(nullptr, str_hello, str_world);
   constexpr auto t_prefix = sigc::internal::tuple_start<2>(t_original);
 
-  static_assert(std::tuple_size<decltype(t_prefix)>::value == 2,
-    "unexpected tuple_start()ed tuple size.");
+  static_assert(
+    std::tuple_size<decltype(t_prefix)>::value == 2, "unexpected tuple_start()ed tuple size.");
 
   assert(std::get<0>(t_prefix) == nullptr);
   assert(std::get<1>(t_prefix) == str_hello);
 }
 
 int
-main() {
+main()
+{
   test_tuple_type_start();
   test_tuple_start();
   test_tuple_start_stdref();
index 5e22e40..c9bcc90 100644 (file)
 #include <functional>
 
 template <class T_element_from>
-class transform_to_string {
+class transform_to_string
+{
 public:
-  static decltype(auto)
-  transform(T_element_from& from) {
-    return std::to_string(from);
-  }
+  static decltype(auto) transform(T_element_from& from) { return std::to_string(from); }
 };
 
 // In these tests, t_expected has elements all of the same type.
 void
-test_tuple_transform_each_same_types() {
+test_tuple_transform_each_same_types()
+{
   {
     auto t_original = std::make_tuple(1, 2, 3);
-    auto t_transformed =
-      sigc::internal::tuple_transform_each<transform_to_string>(t_original);
-    auto t_expected =
-      std::make_tuple(std::string("1"), std::string("2"), std::string("3"));
+    auto t_transformed = sigc::internal::tuple_transform_each<transform_to_string>(t_original);
+    auto t_expected = std::make_tuple(std::string("1"), std::string("2"), std::string("3"));
 
     static_assert(std::tuple_size<decltype(t_transformed)>::value == 3,
       "unexpected tuple_transform_each()ed tuple size.");
@@ -46,17 +43,14 @@ test_tuple_transform_each_same_types() {
     assert(std::get<1>(t_transformed) == "2");
     assert(std::get<2>(t_transformed) == "3");
 
-    static_assert(
-      std::is_same<decltype(t_transformed), decltype(t_expected)>::value,
+    static_assert(std::is_same<decltype(t_transformed), decltype(t_expected)>::value,
       "unexpected transform_each()ed tuple type");
   }
 
   {
     auto t_original = std::make_tuple(1, (double)2.1f, 3);
-    auto t_transformed =
-      sigc::internal::tuple_transform_each<transform_to_string>(t_original);
-    auto t_expected =
-      std::make_tuple(std::string("1"), std::string("2"), std::string("3"));
+    auto t_transformed = sigc::internal::tuple_transform_each<transform_to_string>(t_original);
+    auto t_expected = std::make_tuple(std::string("1"), std::string("2"), std::string("3"));
 
     static_assert(std::tuple_size<decltype(t_transformed)>::value == 3,
       "unexpected tuple_transform_each()ed tuple size.");
@@ -65,8 +59,7 @@ test_tuple_transform_each_same_types() {
     assert(std::get<1>(t_transformed).substr(0, 3) == "2.1");
     assert(std::get<2>(t_transformed) == "3");
 
-    static_assert(
-      std::is_same<decltype(t_transformed), decltype(t_expected)>::value,
+    static_assert(std::is_same<decltype(t_transformed), decltype(t_expected)>::value,
       "unexpected transform_each()ed tuple type");
   }
 }
@@ -79,40 +72,34 @@ class transform_to_something;
 
 // An int will be converted to a std::string:
 template <>
-class transform_to_something<int> {
+class transform_to_something<int>
+{
 public:
-  static std::string
-  transform(int& from) {
-    return std::to_string(from);
-  }
+  static std::string transform(int& from) { return std::to_string(from); }
 };
 
 // A double will be converted to a char:
 template <>
-class transform_to_something<double> {
+class transform_to_something<double>
+{
 public:
-  static char
-  transform(double& from) {
-    return std::to_string(from)[0];
-  }
+  static char transform(double& from) { return std::to_string(from)[0]; }
 };
 
 // A std::string will be converted to an int:
 template <>
-class transform_to_something<std::string> {
+class transform_to_something<std::string>
+{
 public:
-  static int
-  transform(std::string& from) {
-    return std::stoi(from);
-  }
+  static int transform(std::string& from) { return std::stoi(from); }
 };
 
 // In these tests, t_expected has elements of different types.
 void
-test_tuple_transform_each_multiple_types() {
+test_tuple_transform_each_multiple_types()
+{
   auto t_original = std::make_tuple(1, (double)2.1f, std::string("3"));
-  auto t_transformed =
-    sigc::internal::tuple_transform_each<transform_to_something>(t_original);
+  auto t_transformed = sigc::internal::tuple_transform_each<transform_to_something>(t_original);
   auto t_expected = std::make_tuple(std::string("1"), '2', 3);
 
   static_assert(std::tuple_size<decltype(t_transformed)>::value == 3,
@@ -122,16 +109,16 @@ test_tuple_transform_each_multiple_types() {
   assert(std::get<1>(t_transformed) == '2');
   assert(std::get<2>(t_transformed) == 3);
 
-  static_assert(
-    std::is_same<decltype(t_transformed), decltype(t_expected)>::value,
+  static_assert(std::is_same<decltype(t_transformed), decltype(t_expected)>::value,
     "unexpected transform_each()ed tuple type");
 }
 
 template <class T_element_from>
-class transform_each_nonconst {
+class transform_each_nonconst
+{
 public:
-  static int
-  transform(T_element_from& from) {
+  static int transform(T_element_from& from)
+  {
     from *= 2;
     // Or, for instance, call a non-const method on from.
 
@@ -140,10 +127,10 @@ public:
 };
 
 void
-test_tuple_transform_each_nonconst() {
+test_tuple_transform_each_nonconst()
+{
   auto t = std::make_tuple(1, 2, 3);
-  auto t_transformed =
-    sigc::internal::tuple_transform_each<transform_each_nonconst>(t);
+  auto t_transformed = sigc::internal::tuple_transform_each<transform_each_nonconst>(t);
 
   // Check that t was changed (from * 2):
   assert(std::get<0>(t) == 2);
@@ -157,15 +144,14 @@ test_tuple_transform_each_nonconst() {
 }
 
 void
-test_tuple_transform_each_stdref() {
+test_tuple_transform_each_stdref()
+{
   int a = 1;
   int b = 2;
   int c = 3;
   auto t_original = std::make_tuple(std::ref(a), std::ref(b), std::ref(c));
-  auto t_transformed =
-    sigc::internal::tuple_transform_each<transform_to_string>(t_original);
-  auto t_expected =
-    std::make_tuple(std::string("1"), std::string("2"), std::string("3"));
+  auto t_transformed = sigc::internal::tuple_transform_each<transform_to_string>(t_original);
+  auto t_expected = std::make_tuple(std::string("1"), std::string("2"), std::string("3"));
 
   static_assert(std::tuple_size<decltype(t_transformed)>::value == 3,
     "unexpected tuple_transform_each()ed tuple size.");
@@ -174,27 +160,22 @@ test_tuple_transform_each_stdref() {
   assert(std::get<1>(t_transformed) == "2");
   assert(std::get<2>(t_transformed) == "3");
 
-  static_assert(
-    std::is_same<decltype(t_transformed), decltype(t_expected)>::value,
+  static_assert(std::is_same<decltype(t_transformed), decltype(t_expected)>::value,
     "unexpected transform_each()ed tuple type");
 }
 
-
-//This can only be used via std::ref(), for instance.
-//Any attempt to copy or move it, should cause a compiler error.
-class NonCopyable {
+// This can only be used via std::ref(), for instance.
+// Any attempt to copy or move it, should cause a compiler error.
+class NonCopyable
+{
 public:
-  explicit NonCopyable(int val)
-  : m_val(val)
-  {}
-  
-  int get_val() const {
-    return m_val;
-  }
+  explicit NonCopyable(int val) : m_val(val) {}
+
+  int get_val() const { return m_val; }
 
   NonCopyable(const NonCopyable& src) = delete;
   NonCopyable& operator=(const NonCopyable& src) = delete;
-  
+
   NonCopyable(NonCopyable&& src) = delete;
   NonCopyable& operator=(NonCopyable&& src) = delete;
 
@@ -202,26 +183,23 @@ private:
   int m_val;
 };
 
-
 template <class T_element_from>
-class transform_noncopyable_to_string {
+class transform_noncopyable_to_string
+{
 public:
-  static decltype(auto)
-  transform(T_element_from&& from) {
-    return std::to_string(from.get_val());
-  }
+  static decltype(auto) transform(T_element_from&& from) { return std::to_string(from.get_val()); }
 };
 
 void
-test_tuple_transform_each_stdref_non_copyable() {
+test_tuple_transform_each_stdref_non_copyable()
+{
   NonCopyable a(1);
   NonCopyable b(2);
   NonCopyable c(3);
   auto t_original = std::make_tuple(std::ref(a), std::ref(b), std::ref(c));
   auto t_transformed =
     sigc::internal::tuple_transform_each<transform_noncopyable_to_string>(t_original);
-  auto t_expected =
-    std::make_tuple(std::string("1"), std::string("2"), std::string("3"));
+  auto t_expected = std::make_tuple(std::string("1"), std::string("2"), std::string("3"));
 
   static_assert(std::tuple_size<decltype(t_transformed)>::value == 3,
     "unexpected tuple_transform_each()ed tuple size.");
@@ -230,34 +208,36 @@ test_tuple_transform_each_stdref_non_copyable() {
   assert(std::get<1>(t_transformed) == "2");
   assert(std::get<2>(t_transformed) == "3");
 
-  static_assert(
-    std::is_same<decltype(t_transformed), decltype(t_expected)>::value,
+  static_assert(std::is_same<decltype(t_transformed), decltype(t_expected)>::value,
     "unexpected transform_each()ed tuple type");
 }
 
 static std::string correct_sequence_output;
 
 template <class T_element_from>
-class transform_each_correct_sequence {
+class transform_each_correct_sequence
+{
 public:
-  static decltype(auto)
-  transform(int from) {
+  static decltype(auto) transform(int from)
+  {
     correct_sequence_output += std::to_string(from);
     return std::to_string(from);
   }
 };
 
 void
-test_tuple_transform_each_correct_sequence() {
+test_tuple_transform_each_correct_sequence()
+{
   correct_sequence_output.clear();
   auto t = std::make_tuple(1, 2, 3);
   sigc::internal::tuple_transform_each<transform_each_correct_sequence>(t);
-  //std::cout << "correct_sequence_output: " << correct_sequence_output << std::endl;
+  // std::cout << "correct_sequence_output: " << correct_sequence_output << std::endl;
   assert(correct_sequence_output == "123");
 }
 
 void
-test_tuple_transform_each_empty_tuple() {
+test_tuple_transform_each_empty_tuple()
+{
   auto t = std::tuple<>();
   sigc::internal::tuple_transform_each<transform_to_string>(t);
 }
@@ -270,26 +250,18 @@ class transform_as_constexpr_to_something;
 
 // An int will be converted to a char:
 template <>
-class transform_as_constexpr_to_something<int> {
+class transform_as_constexpr_to_something<int>
+{
 public:
-  constexpr
-  static
-  char
-  transform(int from) {
-    return 'a' + from;
-  }
+  constexpr static char transform(int from) { return 'a' + from; }
 };
 
 // A double will be converted to an int:
 template <>
-class transform_as_constexpr_to_something<const double> {
+class transform_as_constexpr_to_something<const double>
+{
 public:
-  constexpr
-  static
-  int
-  transform(double from) {
-    return (int)from;
-  }
+  constexpr static int transform(double from) { return (int)from; }
 };
 
 /* TODO: See the comment in main().
@@ -314,7 +286,8 @@ test_tuple_transform_each_constexpr() {
 */
 
 int
-main() {
+main()
+{
   test_tuple_transform_each_same_types();
   test_tuple_transform_each_multiple_types();
 
@@ -331,7 +304,7 @@ main() {
   //   error: accessing uninitialized member ‘std::tuple<char>::<anonymous>’
   // though it works with clang++.
   // TODO: Try it with a newer g++.
-  //test_tuple_transform_each_constexpr();
+  // test_tuple_transform_each_constexpr();
 
   return EXIT_SUCCESS;
 }
index bd76765..ec0a56e 100644 (file)
@@ -45,7 +45,8 @@ class NsExtClass
 };
 
 template <class T_action, class T_functor>
-void visit_each(T_action&, const T_functor&)
+void
+visit_each(T_action&, const T_functor&)
 {
   result_stream << "ns_ext::visit_each() ";
 }
@@ -59,10 +60,7 @@ class MyClass1 : public sigc::trackable
 public:
   MyClass1(const std::string& str) : s(str) {}
 
-  void execute(int i)
-  {
-    result_stream << s << i;
-  }
+  void execute(int i) { result_stream << s << i; }
 private:
   std::string s;
 };
@@ -72,10 +70,7 @@ class MyClass2 : public ns_ext::NsExtClass, public sigc::trackable
 public:
   MyClass2(const std::string& str) : s(str) {}
 
-  void execute(int i)
-  {
-    result_stream << s << i;
-  }
+  void execute(int i) { result_stream << s << i; }
 private:
   std::string s;
 };
@@ -90,24 +85,21 @@ struct MyAdaptor1 : public sigc::adapts<T_functor>
 {
   using result_type = typename sigc::functor_trait<T_functor>::result_type;
 
-  result_type
-  operator()() const
+  result_type operator()() const
   {
     result_stream << "MyAdaptor1()() ";
     return this->functor_();
   }
 
   template <class T_arg1>
-  decltype(auto)
-  operator()(T_arg1 _A_arg1) const
+  decltype(auto) operator()(T_arg1 _A_arg1) const
   {
     result_stream << "MyAdaptor1()(_A_arg1) ";
     return this->functor_(_A_arg1);
   }
 
   template <class T_arg1, class T_arg2>
-  decltype(auto)
-  operator()(T_arg1 _A_arg1, T_arg2 _A_arg2) const
+  decltype(auto) operator()(T_arg1 _A_arg1, T_arg2 _A_arg2) const
   {
     result_stream << "MyAdaptor1()(_A_arg1, _A_arg2) ";
     return this->functor_(_A_arg1, _A_arg2);
@@ -115,13 +107,12 @@ struct MyAdaptor1 : public sigc::adapts<T_functor>
 
   // Constructs a MyAdaptor1 object that wraps the passed functor.
   // Initializes adapts<T_functor>::functor_, which is invoked from operator()().
-  explicit MyAdaptor1(const T_functor& _A_functor)
-    : sigc::adapts<T_functor>(_A_functor) {}
+  explicit MyAdaptor1(const T_functor& _A_functor) : sigc::adapts<T_functor>(_A_functor) {}
 };
 
 template <class T_action, class T_functor>
-void visit_each(const T_action& _A_action,
-                const MyAdaptor1<T_functor>& _A_target)
+void
+visit_each(const T_action& _A_action, const MyAdaptor1<T_functor>& _A_target)
 {
   visit_each(_A_action, _A_target.functor_);
 }
@@ -140,11 +131,10 @@ my_adaptor1(const T_functor& _A_func)
 namespace sigc
 {
 template <class T_functor>
-struct visitor<ns1::MyAdaptor1<T_functor> >
+struct visitor<ns1::MyAdaptor1<T_functor>>
 {
   template <class T_action>
-  static void do_visit_each(const T_action& _A_action,
-                            const ns1::MyAdaptor1<T_functor>& _A_target)
+  static void do_visit_each(const T_action& _A_action, const ns1::MyAdaptor1<T_functor>& _A_target)
   {
     sigc::visit_each(_A_action, _A_target.functor_);
   }
@@ -152,8 +142,8 @@ struct visitor<ns1::MyAdaptor1<T_functor> >
 } // end namespace sigc
 #endif // SIGCTEST_CASE >= 3
 
-
-int main(int argc, char* argv[])
+int
+main(int argc, char* argv[])
 {
   auto util = TestUtilities::get_instance();
 
index 4d8de22..845dcef 100644 (file)
 
 TestUtilities* TestUtilities::instance_ = nullptr;
 
-TestUtilities::TestUtilities()
-: verbose_(false), result_ok_(true), test_number_(0)
+TestUtilities::TestUtilities() : verbose_(false), result_ok_(true), test_number_(0)
 {
 }
 
-//static
-TestUtilities* TestUtilities::get_instance()
+// static
+TestUtilities*
+TestUtilities::get_instance()
 {
   if (!instance_)
     instance_ = new TestUtilities;
@@ -37,7 +37,8 @@ TestUtilities* TestUtilities::get_instance()
   return instance_;
 }
 
-bool TestUtilities::check_command_args(int argc, char* argv[])
+bool
+TestUtilities::check_command_args(int argc, char* argv[])
 {
   bool go_on = true; // Whether the caller shall continue program execution.
   bool print_help = false;
@@ -65,8 +66,8 @@ bool TestUtilities::check_command_args(int argc, char* argv[])
   return go_on;
 }
 
-void TestUtilities::check_result(std::ostringstream& result_stream,
-                                 const std::string& expected_result)
+void
+TestUtilities::check_result(std::ostringstream& result_stream, const std::string& expected_result)
 {
   if (verbose_)
     std::cout << result_stream.str() << std::endl;
@@ -82,8 +83,9 @@ void TestUtilities::check_result(std::ostringstream& result_stream,
   result_stream.str("");
 }
 
-//static
-bool TestUtilities::get_result_and_delete_instance()
+// static
+bool
+TestUtilities::get_result_and_delete_instance()
 {
   const bool result = instance_ ? instance_->result_ok_ : true;
   delete instance_;
index f06d6d9..772689d 100644 (file)
@@ -24,7 +24,6 @@
 class TestUtilities
 {
 public:
-
   // Non-copyable:
   TestUtilities(const TestUtilities&) = delete;
   TestUtilities& operator=(const TestUtilities&) = delete;
@@ -44,8 +43,6 @@ public:
   static bool get_result_and_delete_instance();
 
 private:
-
-
   TestUtilities();
 
   static TestUtilities* instance_;