summaryrefslogtreecommitdiff
path: root/sigc++/reference_wrapper.h
Commit message (Collapse)AuthorAgeFilesLines
* Reformat code with make formatMurray Cumming2019-10-281-5/+5
|
* Add necessary #include<>sKjell Ahlstedt2018-10-261-0/+2
| | | | | * sigc++/adaptors/tuple_visitor_visit_each.h * sigc++/reference_wrapper.h
* Update copyright years.Murray Cumming2016-04-201-1/+1
|
* Header guards: Remove leading underscores (and trailing underscores).Murray Cumming2016-04-191-3/+3
| | | | Names with leading underscores are reserved in C++.
* Use typename instead of class for all template parameters.Murray Cumming2016-04-191-5/+5
| | | | | | | | | Apart from template template parameters, which must still be class according to the C++14 standard: http://stackoverflow.com/a/11311432/1123654 though g++ and clang++ actually already supporting using typename instead by implementing N4051: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4051.html
* Revert "Always use typename rather than class for template types."Murray Cumming2016-04-191-5/+5
| | | | | | | | This reverts commit 180353986d101e367c26b3199c44c7b2e4c1e681. Because I misread https://stackoverflow.com/questions/213121/use-class-or-typename-for-template-parameters class is _still_ needed for template template parameters in C++14, though g++ and clang++ seem to support it anyway.
* Always use typename rather than class for template types.Murray Cumming2016-04-191-5/+5
| | | | | | | For consistency. As of C++14 class is not necessary even for template template parameters. We can change those few uses back to class if any (otherwise compliant-enough) compiler actually needs it. See http://stackoverflow.com/a/11311432/1123654
* Reformat .h files with clang-format.Murray Cumming2016-03-301-7/+14
|
* C++11: Change all typedefs to using.Murray Cumming2016-03-071-3/+3
|
* C++11: Replace sigc::ref() with std::ref().Murray Cumming2016-03-071-62/+4
| | | | It seems to be remarkably similar.
* New class that just stores a reference, and makes sure that if theRégis Duchesne2005-05-101-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2005-05-06 Régis Duchesne <hpreg@vmware.com> * sigc++/macros/limit_reference.h.m4 (added): * sigc++/Makefile.am: New class that just stores a reference, and makes sure that if the reference derives from trackable, then the trackable reference will be used instead of the derived reference in visit_each(). * sigc++/functors/macros/mem_fun.h.m4: Better fix for bug #169225 by Régis Duchesne and Christian Hammond, based on the new limit_reference class. * sigc++/adaptors/bound_argument.h (added): New class (built upon the new limit_reference class) that handles all 3 kinds of bound arguments: by value, by reference, and by constant reference. References are unwrapped in the bound_argument's constructor. * sigc++/adaptors/macros/bind.h.m4: Fix for bug #302327 by Régis Duchesne. Bound arguments now need to know whether they are passed by reference or not. So bind() now builds bind_functor instances using 'reference_wrapper<Foo>' types, instead of 'Foo &' types. The bind_functor code is modified to compensate. * sigc++/adaptors/macros/bind_return.h.m4: Similar fix for a similar bug (unfiled) with bound return arguments. * sigc++/reference_wrapper.h: * sigc++/type_traits.h: The reference_wrapper class is only used in bound_argument.h. Put correct but unused code under #if 0. * sigc++/adaptors/lambda/base.h: This file needs reference_wrapper.h, but was incorrectly relying on type_traits.h to include it. * tests/Makefile.am: * tests/test_virtualbase_delete.cc (deleted): * tests/test_virtualbase_delete_ref_param.cc (deleted): * tests/test_limit_reference.cc (added): Replaced test_virtualbase_delete*.cc with a simpler test_limit_reference.cc which checks for all 3 aspects of the same bug in one file. * tests/test_bind_ref.cc: Slots must use 'Foo &' types. We were lucky this broken usage worked before this change. The change in type_traits.h made this bug obvious, by preventing the code to compile. * tests/test_bind_return.cc: After my change, bind() and bind_return() must use 'reference_wrapper<Foo>' types. * tests/test_custom.cc: Made this test a no-op (so it does not perturb 'make check' on released versions of the library) and made it a template ready to be modified by hackers.
* Bump version number to 2.0.0. Add ChangeLog summary for version 2.0.0.libsigc++-2.0.0Martin Schulze2004-04-121-0/+26
| | | | | | | | | | 2004-04-06 Martin Schulze <mschulze@cvs.gnome.org> * configure.ac: Bump version number to 2.0.0. * NEWS: Add ChangeLog summary for version 2.0.0. * TODO, AUTHORS: Bring up to date. * sigc++-2.0.pc.in, Makefile.am: 1.9 -> 2.0 * Added more documentation.
* New file reference_wrapper.h provides ref() to specify thatMartin Schulze2003-09-031-0/+92
2003-08-31 Martin Schulze <teebaum@cvs.gnome.org> * sigc++/reference_wrapper.h, sigc++/type_traits.h, sigc++/Makefile.am: New file reference_wrapper.h provides ref() to specify that adaptors/lambdas should take a reference to the object passed into ref() instead of a copy.