Boost logo

Boost :

From: Joaquín Mª López Muñoz (joaquin_at_[hidden])
Date: 2006-03-13 07:03:49


Hello Markus

Markus Schöpflin ha escrito:

> JOAQUIN LOPEZ MU?Z wrote:
>
> [...]
>
> > The test used to work, but has hundergone a significant
> > change that I've got the hunch might be related to
> > its currently failing: previously all serialization
> > tests were performed in a single translation unit
> > named test_serialization.cpp, while now the code has
> > been split (for reasons irrelevant to this discussion) into
> > two files test_serialization1.cpp and test_serialization2.cpp.
> > Does this ring some bell?
>
> [...]
>
> This is most probably caused by having multiple instances of some static
> object, which in turn is caused by a limitation of the template
> instantiation model used. (All automatically instantiated templates are
> placed in the output object and given internal linkage.)
>
> If you can identify the static object in question, adding a manual
> instantiation of the enclosing template will work around this, because
> those will be placed in an external template repository with external linkage.

That's precisely what I'd like to ask you :) Could you trap the assertion
and dump the stack trace? Hopefully, that'll reveal the type of the
object which is causing the problem.

> I had a quick look at the code but as I don't know a thing about either
> serialization or multi_index, I'm afraid I won't be of much help with
> finding the problematic code.

As for Boost.MultiIndex, there's no static object involved neither
in the lib nor the tests, AFAIK, but if you could get that stacktrace
we could tell better.

Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo


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