STLport.org - "Templates that fit"
Contents
Introduction
  About STLport
  SGI STL Base
  STLport Story

STLport Features
  Portability
  Debug Mode
  Thread Safety
  Exception Safety

Getting Started
  Download and Install
  Select Streams Mode
  Compiling with STLport

White Papers
  Release Notes
  READMEs
  Interface with std::
  Wrappers
  Config manual
  Regression Test
  Exception Test

Feedback
  Bug Reports
  Forum

Appendix
  Acknowledgements
  Your Free Licence

Note for DEC CXX users


Known problems

Compiling

DEC CXX require explicit template notation such as template_class<Param> where most others (conformant) accept just template_class (inside template method bodies, etc):

template <class Param> class template_class {
template_class foo() ; // error for DEC
template_class<Param> foo() // OK
.....
}

That is being worked around in this adaptation, but may cause problems when porting template code from other platforms. Use the same name of formal parameter : Param in all method's outside definitions.

Linking

Repository handling of this compiler is imperfect, so you may experience various problems on link stage. Linker problems problems are generally of two kinds : unresolved symbols and duplicate symbols. The latter problem was never reported to occur with DEC CXX. The problem with undefined symbols is also may require manual intervention. General rule is : if you get "unresolved symbol" errors, explicit instantiation will most likely help, for example:

Unresolved:
__default_alloc_template<0, 0>::allocate(unsigned long)
__default_alloc_template<0, 0>::deallocate(void*, unsigned long) >

To work around this problem, just instantiate __alloc<0,0> explicitly in some module:

template class __default_alloc_template<0,0>;

Another way to solve this problem may be use of -pts compiler option, but I'm not sure it works in all cases.


Copyright © 1999,2000 by Boris Fomitchev.    Last modified: July 14, 2000