Re: [sigc] ANNOUNCE: libsigc++ 1.9.12 (aka libsigc++ 2.0 beta 1)
- From: Roel Vanhout <roel riks nl>
- To: Martin Schulze <martin-ml hippogriff de>
- Cc: libsigc-list gnome org
- Subject: Re: [sigc] ANNOUNCE: libsigc++ 1.9.12 (aka libsigc++ 2.0 beta 1)
- Date: Mon, 10 Nov 2003 10:50:29 +0100
Ok I'm back from my week training so I had a chance to check 1.9.12 with
Visual Studio.
First off, I could see in the changelog that the Visual Studio project
files should be in 1.9.12 but they were not in the tarball that I
downloaded. So I just copied over the old files that I had.
8 of the test succeed, 10 still fail. One of the problems is that in
adaptor_trait.h it says
#ifdef MSVC
#define LIBSIGC_TEMPLATE_PREFIX
#else
#define LIBSIGC_TEMPLATE_PREFIX template
#endif
But 'MSVC' isn't necessarily defined on the vc compiler; I changed the
first line to
#ifdef _MSC_VER
and then 14 tests succeeded and only 4 still failed. Those 4 all use
bind.h (test_size, test_functor_trait, test_compatibility and test_bind)
so I think it is safe to assume that this error is the last one left.
The problem is still in
template <int I_location, class T_bound1, class T_bound2, class T_functor>
inline bind_functor<I_location, typename unwrap_reference<T_bound1>::type,
bind_functor<I_location?I_location+1:0, typename
unwrap_reference<T_bound2>::type, T_functor> >
bind(const T_functor& _A_functor, T_bound1 _A_b1, T_bound2 _A_b2)
{
return bind_functor<I_location, typename
unwrap_reference<T_bound1>::type,
bind_functor<I_location?I_location+1:0, typename
unwrap_reference<T_bound2>::type, T_functor> >
(bind<I_location?I_location+1:0>(_A_functor, _A_b2), _A_b1);
}
The error is
c:\test\libsigc++-1.9.12\sigc++\adaptors\bind.h(507) : error C2143:
syntax error : missing ',' before '<end Parse>'
(documentation for this error says:
syntax error : missing 'token1' before 'token2'
The compiler expected a specific token (a language element other than
white space) and found another token instead.)
That's all for now.
cheers,
roel
Martin Schulze wrote:
*** libsigc++ 2.0 (beta)
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.
libsigc++ is used by gtkmm to wrap the GTK+ signal system. It does not
depend on GTK or gtkmm.
libsigc++ 2.0 uses modern C++ mechanisms to achieve a highly flexible,
yet typesafe callback system. It supports all features of libsigc++ 1.2
and improves upon it with a simpler and more powerful API. The old API
is preserved by means of a deprecated compatibility module.
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: 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.
* 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.
* Highly optimizable: performs only one indirect function call during
slot invokation independant of the number of adaptors used.
* Conforms to the STL naming scheme: only uses small letters.
*** Prerequisits
Compatible compilers must supports the following recent c++ techniques:
* Partial template (function) specialization.
* Arithmetics in template arguments.
* Explicit template (member) function instantiation.
* Treat void return as normal return.
*** Changes:
1.9.12:
This is the first beta release of libsigc++ 2.0. No more API additions
should be made. Future work concentrates on supporting more compilers,
bug hunting and finishing the documentation. Changes in this release:
* Added adaptor retype(). With this final API addition all adaptors
are in place that are available in libsigc++-1.2.
* Added negation lambda operator. Use STL names for lambda actions.
* Remove formerly disabled support for gcc extension typeof().
* Added project files for MS Visual Studio .Net 2003. (Roel Vanhout)
* Make libsigc++2 compile with .Net 2003. (Roel Vanhout,Martin Schulze)
* Build shared version of libsigc++2 by default. (Cedric Gustin)
* Add support for win32 platform. (Cedric Gustin)
* Install .m4 files. (requested by Ron Steinke)
* Cleaned up functors .m4 files for ptr_fun() and mem_fun().
* Restructured and completed documentation of the core library parts.
*** Download:
libsigc++ is available for download here:
http://libsigc.sourceforge.net/
A reference documentation for libsigc++ 2.0 can be found here:
http://libsigc.sourceforge.net/libsigc2/docs/
*** Known issues:
* This release has only been tested with gcc-3.2. It should also
compile with:
- gcc-3.3, gcc-3.3.x
- cygwin (gcc >= 3.2)
- mingw32
- Microsoft Visual Studio .Net 2003
- Sun Forte C++ compiler
Please report any troubles you encounter with these compilers!
You are also invited to try a different compiler.
* When the compatibility module is used with "using namespace SigC",
gcc-3.2 reports conflicts of SigC::slot() with struct sigc::slot.
A hackish work-around has been disabled to support the .Net compiler.
* Adaptors are not documented, yet.
_______________________________________________
libsigc-list mailing list
libsigc-list gnome org
http://mail.gnome.org/mailman/listinfo/libsigc-list
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]