Date: 2001-09-26 08:32:41
> On pthreads, boost::once_init is defined like this:
> namespace boost
> typedef pthread_once_t once_flag;
> const once_flag once_init = PTHREAD_ONCE_INIT;
> Is it guaranteed that
> boost::once_flag x = boost::once_init;
> is statically initialized?
I had the same question this morning. I don't think so, because
pthread_once_t does not have to be an arithmetic type [POSIX Draft 7 Base
Definitions, line 12984]. It can be a POD, which would make
boost::once_init statically initialized, but ::x dynamically initialized,
from my reading of the C++ Standard. Providing:
#define BOOST_ONCE_INIT PTHREAD_ONCE_INIT
would work around this.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk