Subject: B18: Template class constructor bug
From: [email-masked] (Pavel Matsibekker)

23 Apr 1998 00:04:23 -0700
Message-ID: <[email-masked]>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
To: [email-masked]

Hello,
    I'm having trouble running an Array class which works fine with
several other compilers on solaris and hpux. I'm trying to compile it
with gnuwin32 with negative results.
     Here's a snipped of the simplifed case Foo. It gives me the
following compiler error

C:\temp\cc0037901.o: In function 'main':
<path>/Foo.t.c:(line num): undefined reference to 'Foo(int)::Foo(int &)'

g++: Internal Compiler error : program ld got fatal signal 1

Has anyone run into this?

Below is the code for it:
Foo.h:-----
template <class T>
class Foo {
public:   // CONSTRUCTORS

   Foo(T &t);
  T *d_array_p;
    // Pointer to the array
};
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Foo.c -----
#include <stdlib.h>
#include <iostream.h>
#include "Foo.h"

template <class T>  Foo<T>::Foo(T &t)
{
d_array_p=&t;
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Foo.t.c -----

#include <iostream.h>
#include "Foo.h"
int
main(int argc, char* argv[])
{
int x=5;
Foo <int>  abc(x);
return 1;
}

-
For help on using this list (especially unsubscribing), send a message to
"[email-masked]" with one line of text: "help".