libsigc++ implements a typesafe callback system for standard C++. It allows you
to define signals and to connect those signals to any callback function, either
global or a member function, regardless of whether it is static or virtual.
It also contains adaptor classes for connection of dissimilar callbacks and has
an ease of use unmatched by other C++ callback libraries. Libsigc++ is licensed
under the GNU Library General Public License, LGPL.
- Features
* Compile time typesafe callbacks (faster than run time checks)
* Typesafety violations report 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 cause
seg faults)
* Extendable API at any level: signal, slot, connection and trackable
* Extensions do not require alteration of basic components
* User definable accumulators
* A variety of adaptors to change the callback signature: bind, hide, retype,
compose and lambda call groups
* Various compilers and platforms are supported: gcc, cygwin, mingw32, MS .NET
2003, Sun Forte C++, Compaq C++, Intel C++, IBM AIX, Tru64, IRIX MipsPro.
- News
libsigc++ has reached the major version 2.0. libsigc++ 2.0 has been rewritten
from scratch adapting modern C++ coding techniques that allow for a flexible and
powerful but yet simple-to-use API. In particular the API improvements from
libsigc++ 1.2 to 2.0 include:
* Provides unnumbered signal and slot templates.
* Supports arbitrary functor types.
* Supports implicit argument type conversions on signal emission.
* Adds support for overloaded functions.
* Borrows powerful accumulator interface from boost::signal.
* Simplifies use of adaptors like sigc::hide(): argument types need not be
specified any more (except for sigc::retype_return()).
* More powerful adaptors: position of arguments to hide or bind can be chosen
freely; up to 7 arguments can be bound at a time.
* Adds two useful adaptors: sigc::compose(), sigc::exception_catch().
* Adds all-in-one operator sigc::group() with support for lambdas featuring a
complete set of lambda selectors and lambda operators.
* Performs only one indirect function call during slot invokation regardless of
the number of adaptors used; the direct function calls involved are inline and
can be optimized away by the compiler.
* Conforms to the STL naming scheme: only uses small letters.
- AmigaOS 4 version
Both clib2 and newlib static libraries are included. All the tests with the
clib2 and newlib versions of the library have been run to check that there's no
crash. The included tests are the newlib ones. No modifications to the sources
have been required to compile it.
| |