[sigc] Re: Libsigc++ and SUN



Am 2003.10.23 11:18 schrieb(en) Murray Cumming Comneon com:
You might ask somebody on the #sun irc.gnome.org channel to try to
build
libsigc++ 2. Sander Vesik has been helpful in the past. If they see a
problem, then they should check whether they have these SUN Forte
patches:
http://cvs.gnome.org/lxr/source/gtkmm-root/base/README.SUN#7

Sorry, I have no irc access these days.

No problem. However, I will do this tomorrow when anoncvs is in sync:
I forgot to comment out the typeof() compiler check (which will fail
for SUN Forte) in configure.ac for libsigc++-1.9.9 and just committed
the change ...


By the way, gcc-3.3 obviously has a compiler bug that prevents the
compilation of the adaptor bind test case:

test_bind.cc: In function `int main()':
test_bind.cc:63: error: ambiguous class template instantiation for `struct sigc::bind_functor<1, int, foo>::deduce_result_type<int, void, void, void,
   void, void, void>'
../sigc++/adaptors/bind.h:144: error: candidates are: struct
   sigc::bind_functor<1, T_bound, T_functor>::
deduce_result_type<T_arg1,
   T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, void>
../sigc++/adaptors/bind.h:141: error:                 struct
   sigc::bind_functor<1, T_bound, T_functor>::
deduce_result_type<T_arg1,
   T_arg2, T_arg3, T_arg4, T_arg5, void, void>
../sigc++/adaptors/bind.h:138: error:                 struct
   sigc::bind_functor<1, T_bound, T_functor>::
deduce_result_type<T_arg1,
   T_arg2, T_arg3, T_arg4, void, void, void>
../sigc++/adaptors/bind.h:135: error:                 struct
   sigc::bind_functor<1, T_bound, T_functor>::
deduce_result_type<T_arg1,
   T_arg2, T_arg3, void, void, void, void>
../sigc++/adaptors/bind.h:132: error:                 struct
   sigc::bind_functor<1, T_bound, T_functor>::
deduce_result_type<T_arg1,
   T_arg2, void, void, void, void, void>
../sigc++/adaptors/bind.h:129: error:                 struct
   sigc::bind_functor<1, T_bound, T_functor>::
deduce_result_type<T_arg1, void,
   void, void, void, void, void>

and so on. The last partial template specialization listed in
the error message is the only one the compiler should consider
and both gcc-3.2 and gcc-3.3.2 work correctly. I removed some
unnecessary template specializations in cvs so that now, only
bind<0>() doesn't compile with gcc-3.3.


The True64 compiler on the other hand is a laugh:

cxx -I. -I. -I.. -I.. -g -c -o test_deduce_result_type.o `test -f 'test_deduce_result_type.cc' || echo './'`test_deduce_result_type.cc
cxx: Error: test_deduce_result_type.cc, line 15: namespace "std" has no
          member "cout"
{ std::cout << "int" << std::endl; }
-------^

and so on. There are some other errors that seem to be solvable
but I am not motivated to change back to "using namespace std"
in the examples to make this compiler happy!


Regards,

  Martin



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