Re: [sigc] libsigc++ 1.9.13 fails on Solaris 9 sparc



My last message was too big (>40k) and may be held up or blocked so I am resending with gzip'd slot.h attached.

I made the following literal changes to sigc++/functors/slot.h:
LIBSIGC_TEMPLATE_PREFIX is now empty.
and
SIGC_WORKAROUND_OPERATOR_PARENTHESES is sun_forte_workaround
so you get lines like:
return (typed_rep->functor_). sun_forte_workaround<typename type_trait<T_arg1>::take>

When (incrementally) building test_slot.cc I get:
CC -I. -I. -I.. -I.. -I.. -DG_HAVE_ISO_VARARGS -DG_IMPLEMENT_INLINES -I/opt/gnome-2.4/include -g -c -o test_slot.o `test -f 'test_slot.cc' || echo './'`test_slot.cc "../sigc++/functors/slot.h", line 122: Error: Unexpected type name "sigc::type_trait<int>::take" encountered. "../sigc++/functors/slot.h", line 122: Error: sun_forte_workaround is not a member of sigc::adaptor_functor<foo>. "../sigc++/functors/slot.h", line 123: Error: "static sigc::internal::slot_call1<foo, void, int>::call_it(sigc::internal::slot_rep*, const int&)" cannot return a value. "../sigc++/functors/slot.h", line 122: Error: Unexpected type name "sigc::type_trait<char>::take" encountered. "../sigc++/functors/slot.h", line 122: Error: sun_forte_workaround is not a member of sigc::adaptor_functor<foo>. "../sigc++/functors/slot.h", line 123: Error: "static sigc::internal::slot_call1<foo, void, char>::call_it(sigc::internal::slot_rep*, const char&)" cannot return a value. "../sigc++/functors/slot.h", line 122: Error: Unexpected type name "sigc::type_trait<std::string &>::take" encountered. "../sigc++/functors/slot.h", line 122: Error: sun_forte_workaround is not a member of sigc::adaptor_functor<foo>. "../sigc++/functors/slot.h", line 123: Error: "static sigc::internal::slot_call1<foo, void, std::string &>::call_it(sigc::internal::slot_rep*, std::string &)" cannot return a value.
9 Error(s) detected.
make: *** [test_slot.o] Error 9


FYI: I am out of the office from end of business today until Tuesday April 13th. If you need anything checked before then, get it to me by 4:30pm Irish time today.

Damien.

Murray Cumming wrote:
On Mon, 2004-03-29 at 11:59, Damien Carbery wrote:

I put the '.' back in so the line is:
// Space after '.' before SIGC_WORK...
return (typed_rep->functor_). SIGC_WORKAROUND_OPERATOR_PARENTHESES<typename type_trait<T_arg1>::take>


OK, so my configure-time test wasn't working quite right, and it looks
like SIGC_WORKAROUND_OPERATOR_PARENTHESES isn't working either.

On your platform I think
LIBSIGC_TEMPLATE_PREFIX should be empty,
and
SIGC_WORKAROUND_OPERATOR_PARENTHESES should be sun_forte_workaround

These are defined in sigc++/adaptors/adaptor_trait.h. Maybe you could
check their values and hard-code them to check that it would work.

It's very difficult to do this without direct access, but I'm fairly
confident that it's possible to get this working on Sun Forte C++ 5.5.
Thanks for helping.


Attachment: slot.h.gz
Description: application/gzip



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