
David Abrahams wrote:
on Tue Feb 17 2009, Sohail Somani <sohail-AT-taggedtype.net> wrote:
Hey Robert,
I guess that is possible. I have no idea *why* it is not getting instantiated though so I wouldn't know where to start. Any suggestions?
In any case, what part of the standard says that the return type should be instantiated? I read the part referenced in register_archive.hpp (temp.dep.candidate) but I can't see how to interpret that as "must instantiate the return type."
My implementation of BOOST_CLASS_EXPORT used implementation-specific hacks to get instantiation to happen on different compilers. It all hinges on what the compiler considers to be "using" a name. So you may have to find the right hack for Sun. Fortunately, the code was fairly well localized into a single header IIRC.
Ok, that is a start. Thanks. Still, why intentionally restrict portability even further when the alternative was not burdensome to begin with? I would have better luck implementing a portable export (the previous version) rather than figuring out hacks for each compiler. I think the export documentation should be modified to say (in big fat bold letters) that it should not be used in portable code. Actually, I remember mentioning this at my serialization talk. I might have to follow my own advice :-) -- Sohail Somani http://uint32t.blogspot.com