Hi Joachim,

Hmmm; this is odd.  You write:

> The template class "DOMDeepNodeListPool" is declared in
"DOMDeepNodeListPool.hpp" and the definition is in
> "DOMDeepNodeListPool.cpp".

But all I can find on my CVS copy is DOMDeepNodeListPool.c.    Are you sure
your local copy hasn't been modified somehow?

Cheers,
Neil
Neil Graham
XML Parser Development
IBM Toronto Lab
Phone:  905-413-3519, T/L 969-3519
E-mail:  [EMAIL PROTECTED]




|---------+------------------------------>
|         |           "Joachim Deelen"   |
|         |           <joachim.deelen.ecs|
|         |           @deelen.de>        |
|         |                              |
|         |           06/03/2003 07:46 AM|
|         |           Please respond to  |
|         |           xerces-c-dev       |
|         |                              |
|---------+------------------------------>
  
>---------------------------------------------------------------------------------------------------------------------------------------------|
  |                                                                                    
                                                         |
  |       To:       "[EMAIL PROTECTED]" <[EMAIL PROTECTED]>                            
                                     |
  |       cc:                                                                          
                                                         |
  |       Subject:  Templates in Source-Files                                          
                                                         |
  |                                                                                    
                                                         |
  |                                                                                    
                                                         |
  
>---------------------------------------------------------------------------------------------------------------------------------------------|



Hi all,

I just ported Version 2.2.0 to OS/2, using the VisualAge C++ V4.0 compiler.
Since most OS/2 developers are using VisualAge C++ 3.0,
OpenWatcom or gcc, I'm currently working on a build environment for
VisualAge C++ 3.0 and I'm almost done ;-)

But there are some problems with templates used within some source-files
and the way VACPP 3.0 handles them. Normally you only
include the declaration of the template stored in the .HPP file. Then the
compiler generates a corresponding .CPP and tries to include a
.C within that generated file, to get the definition of the template. For
most of the templates this works just fine but for "newer" files, there is
no .C file anymore instead the definition is also stored within a .CPP
file.

Example:
The template class "RefArrayOf" is declared in "RefArrayOf.hpp" and the
definition is in "RefArrayOf.c" This one works fine!!

The template class "DOMDeepNodeListPool" is declared in
"DOMDeepNodeListPool.hpp" and the definition is in
"DOMDeepNodeListPool.cpp". This one produces unresolved externals during
linking!!

The only, very annoying, workaround for this is to copy
DOMDeepNodeListPool.cpp to DOMDeepNodeListPool.c and explicitly exclude
the CPP-file from the compilation process. Now I have to search every CPP
file, to see if it's a template definition and if so, i have to copy
and exclude it from the compilation process.

Why has this changed? I think this is a Bug, because in each template HPP
file, there is a statement at the end that tries to include the
corresponding .C file and this will not compile if XERCES_TEMPLSINC is not
defined because the .C can not be found.

Any help would be appreciated

regards
Joachim


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to