Re: [sigc] Re: [Bug 147391] - test_lambda does not compile with SUN Forte 5.5



Hi Damien!

Sorry for the break - Now I have time to look at this error. Obviously it occurs in the compatibility module, the reason being that the FORTE does not handle the "const" keyword correctly when building a slot from a const member method.

However, the implementation causing the error does not differ from libsigc++-1.2's so most likely slots referring to const member methods didn't work with the FORTE before. Therefore, the compatibility module doesn't need to solve this non-trivial problem.

Instead, I will remove the const member method test from test_compatibility.cc and upload to:

 http://www.hippogriff.de/libsigc++-2.0.4-test5.tar.gz

Please try this one!

Regards,

 Martin


Am 11.08.2004 11:03:08 schrieb(en) Damien Carbery:
/sgnome/tools/sparc-solaris/forte/SOS8/SUNWspro/bin/CC  -I. -I. -I..
-I.. -I..    -g -c -o test_compatibility.o test_compatibility.cc
"../sigc++/object_slot.h", line 175: Error: Could not find a match for
sigc::bound_mem_functor1<void, foo, const std::string
&>::bound_mem_functor1(const foo, void(foo::*)(const std::string
&)const).
"test_compatibility.cc", line 57:     Where: While instantiating
"SigC::slot<void, const std::string &, foo, foo>(const foo&,
void(foo::*)(const std::string &)const)".
"test_compatibility.cc", line 57:     Where: Instantiated from
non-template code.
1 Error(s) detected.
make[2]: *** [test_compatibility.o] Error 1
make[2]: Leaving directory `/jds/libsigc/libsigc++-2.0.4/tests'


FYI: I used tarball test4.
I work with a clean directory each time, removing the old stuff first.

Damien

----- Original Message -----
From: Martin Schulze <martin-ml hippogriff de>
Date: Tuesday, August 10, 2004 6:24 pm
Subject: Re: [sigc] Re: [Bug 147391] - test_lambda does not compile
with SUN Forte 5.5

> Am 10.08.2004 18:09:36 schrieb(en) Damien Carbery:
> > make failed.
> >
> > To be sure I have the correct tarball:
> > $ cksum libsigc++-2.0.4-test3.tar.gz
> > 761559274 1767826 libsigc++-2.0.4-test3.tar.gz
>
> The tarball is correct. I don't understand why the FORTE doesn't
> choose
> the template specialization:
>
>  template <class T_type>
>  struct convert_array
>  { typedef T_type& type; };
>
>  template <class T_type, int N>
>  struct convert_array<T_type[N]>
>  { typedef T_type* type; };
>
>  [...]
>
> 'convert_array<const T_type>::type' (with T_type='char(&)[2]')
> gives
> 'const char(&)[2]' instead of 'const char*'. gcc works as expected.
>
> This is unnerving! Especially since glibmm uses the same trick to
> distinguish between array types and other types.
>
> Probably there is a compiler bug. I will upload a tarball that has
> the
> offending lines in test_lambda.cc disabled so that we can move on.
> Please try:
>
>  libsigc++-2.0.4-test4.tar.gz
>
> in two hours or so.
>
> Regards,
>
>  Martin
>




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]