Problem with class operators.

corey taylor corey.taylor@gmail.com
Mon Jul 25 18:13:00 GMT 2005


Kristian,

  Are you asking if there is a way for the compiler to make note of an
internal linkage and instantiation in one file and translate that to
another file?

  I think that you'll find scoping rules will limit this.  The
declaration and sometimes definition needs to be visible at the time
of instantiation.

  A basic example is section 14.7 paragraph 6 of the specification:

If an implicit instantiation of a class template specialization is
required and the template is declared but not
defined, the program is ill-formed. 

[Example:
template<class T> class X;

X<char> ch; // error: definition of X required
—end example]

Paragraph 3 gives examples for required method instantiations.

corey

On 7/25/05, Kristian Kratzenstein <kristian.kratzenstein@kielnet.net> wrote:
> Hi Eljay,
> 
> Nearly as I thought. But : When the template method / function is used in
> the related cpp file, then the Linker could link from other files to the
> same function (with same type).
> Therefor I use a dummyfunction.
> 
> The problem now is, that CW and VC preserve the methods during compiling.
> gcc now optimize them away (small, like GetBuffer or so), so they run in
> the file, but cannot be linked.
> 
> So, is there a way to get those methods preserved, so I could link to them
> ?
> 
> I know, the best is : into the Headers. But I made template classes
> (some), which are based on each other. Cause the size, I would like to
> have them in cpp / h file. Also this looks more clean.
> 
> Kind regards
> 
> Eljay Love-Jensen <eljay@adobe.com> on Montag, 25. Juli 2005 at 17:32
> +0100 wrote:
> >Hi Kristian,
> >
> >Non-specialized template functions and methods need to be defined in the
> >header file which declares them.
> >
> >Otherwise they are only visible to the translation unit in which they are
> >defined.
> >
> >HTH,
> >--Eljay
> >
> >
> >
> 
> 
> 
> --------------------------------------------
> Kristian Kratzenstein
> Gettorf
> 
> Kristian.Kratzenstein@KielNET.net
> --------------------------------------------
> 
> 
>


More information about the Gcc-help mailing list