[sigc] Problem with accumulator when signal depend on template parameter



[Sorry if this gets duplicated, I tried to subscribe with my sourceforge
address as sender earlier but mails to that address does not seem to get
through at the moment.]

Hi!

I'll start with some example code, it's not much:


/* g++ `pkg-config sigc++-2.0 --cflags --libs` -o crash-gcc crash-gcc.cc */
#include <sigc++/sigc++.h>

using namespace std;

struct Accumulator
{
};

template <class T>
class MyTemplate
{
  public:
    typedef sigc::signal1<int, T, Accumulator> MySignalType1; // line 14

    typedef sigc::signal<int, T>::accumulated<Accumulator> MySignalType;   // line 16
};

int main()
{
  MyTemplate<void*> myinstance; // line 21
}


When I compile with gcc (GCC) 3.3.5 (Debian 1:3.3.5-8ubuntu2):

crash-gcc.cc: In instantiation of `MyTemplate<void*>':
crash-gcc.cc:21:   instantiated from here
crash-gcc.cc:16: internal compiler error: Segmentation fault
Please submit a full bug report,

When I compile with gcc-4.0 (GCC) 4.0.0 20050301 (prerelease) (Debian
4.0-0pre6ubuntu7):

crash-gcc.cc:16: error: non-template ‘accumulated’ used as template
crash-gcc.cc:16: note: use ‘sigc::signal<int, T, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::template accumulated’ to indicate that it is a template
crash-gcc.cc:16: error: type ‘sigc::signal<int, T, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>’ is not derived from type ‘MyTemplate<T>’

The suggestion on the second line from gcc 4 does not make any sense to
me, and gives even more errors if I try it.

I think that the third and last line from gcc 4 is really weird.

Am I doing something obviously wrong or is this maybe some bug/feature
with partial template specialization?


(Another small issue: the section about Marshallers in the tutorial
http://libsigc.sourceforge.net/libsigc2/docs/manual/html/ch04s03.html
could use a big sign saying it is old stuff and that accumulators are
used nowadays with libsigc++-2. Are you interested in documentation
patches if I find the time?)


-- 
Regards,
               -\- David Eriksson -/-

        SynCE - http://synce.sourceforge.net
      ScummVM - http://scummvm.sourceforge.net
     Desquirr - http://desquirr.sourceforge.net




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