Boost logo

Boost :

From: Markus Schöpflin (markus.schoepflin_at_[hidden])
Date: 2005-06-29 02:33:55


John Maddock wrote:

>>Attached patch clears the current failures in regex_regress on Tru64/CXX.
>>
>>Basically it adds an explicit instantiation of a template class needed
>>because otherwise CXX ends up with multiple instances of the static
>>variable used in the class, which is because of the template compilation
>>model chosen for the compiler. As it shouldn't hurt other compilers, I
>>didn't wrap it in #if ... #endif.

[snip]

> Not quite: the explicit instantiation are not legal C++ if applied in more
> than one translation unit. If you wrap them in the appropriate #ifdef's
> then it's probably OK to commit. (I say probably, because I'm not sure what
> Tru64 cxx does in other template instantiation modes, I suspect the patch
> may actually mess some of them up).

Umm, now I'm confused. Why is explicit instantiation in more than one
translation unit illegal?

Markus


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk