Boost logo

Boost :

From: Beman Dawes (bdawes_at_[hidden])
Date: 2003-12-17 20:30:20


At 12:59 PM 12/17/2003, David Abrahams wrote:

>> I could use some help on this. I don't understand why building as a
>> DLL causes boost::iterator_facade to instantiate differently. Is the
>> BOOST_FILESYSTEM_DECL the problem, and if so, what is the fix?
>
>IIUC Exporting a class template in a DLL instantiates all of its
>non-template member functions, so yes, that's the problem.
>
>There are a few possible fixes:
>
> 1. stop exporting it; make everything inline (you can dispatch to
> exported implementation functions).

I've made the change. It really didn't have much impact on the code as
there were just three functions that weren't already inline. Worth it,
because users have requested the ability to build the Filesystem library as
a DLL.

I had a moment of panic when the first tests still failed, but it was only
because I'd forgotten to remove BOOST_FILESYSTEM_DECL from the class.

I'm rerunning both the tests and the build from scratch, just to be sure,
and assuming they are OK will commit the changes to CVS shortly.

Thanks,

--Beman


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