|
Boost : |
From: E. Gladyshev (egladysh_at_[hidden])
Date: 2003-08-04 12:10:36
--- Russell Hind <rhind_at_[hidden]> wrote:
> E. Gladyshev wrote:
> You have
> objects created inside the signals lib
> (non-multi-threaded) so it
> doesn't create/initialise the lock member variables.
> There is then
> header code which is compiled directly in your
> application
Thanks for taking a look at the problem. IMO,
distributing objects between inlines and DLL functions
is not a very good idea. The classic example is:
//intended to be used as DLL.
class A
{
public:
char* m_data;
//compiled into application
inline ~A()
{
if(m_data) delete[] m_data;
}
//calls DLL
void init();
};
void A::init()
{
m_data = new char[10];
}
IMHO, boost needs to get rid of any possibility of
this to happen. Why does boost::signal() need a
DLL/LIB in the first place? Would not be just the .h
file enough?
Eugene
__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk