Boost logo

Boost :

From: Rene Rivera (grafik.list_at_[hidden])
Date: 2005-05-22 16:43:32


Many of the problems that CodeWarrior, and True64, have with the
serialization library stem from the behavior of CW to not call
constructors for static data members in one particular class in the
library. I've come to think that this is standard conforming behavior.

The serialization library relies on a static member of a template class
being constructed at global initialization time to figure out what all
the serialized classes are. The problem is that the template class is
being instantiated implicitly. Which for most compilers also
instantiates any static members of that template class. It's my
understanding that this violates 14.7.1.7:

        "The implicit instantiation of a class template does not cause any
static data members of that class to be implicitly instantiated."

Question I have.. Is my understanding correct? Or is this a bug in CW part?

For reference the code in question is in
"boost/serialization/void_cast.hpp"..

http://cvs.sourceforge.net/viewcvs.py/boost/boost/boost/serialization/void_cast.hpp?view=markup
http://tinyurl.com/9s5jb

The template class is void_caster_primitive, and it's instantiated from
the void_cast_register function at the bottom.

-- 
-- Grafik - Don't Assume Anything
-- Redshift Software, Inc. - http://redshift-software.com
-- rrivera/acm.org - grafik/redshift-software.com
-- 102708583/icq - grafikrobot/aim - Grafik/jabber.org

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