You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@xerces.apache.org by Joachim Deelen <jo...@deelen.de> on 2003/06/03 13:46:52 UTC

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: xerces-c-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-c-dev-help@xml.apache.org