Boost logo

Boost Users :

From: Joaquin M Lopez Munoz (joaquin_at_[hidden])
Date: 2007-02-26 17:32:57


Manuel Jung <gzahl <at> arcor.de> writes:

>
> Hi,
>
> Sorry for hte delay, but i was in a train again yesterday, with no
> internet...
> But here im back now.
>
> > I don't really know :) I'm trying to gain more info on the
> > context where the core happens. Let's begin with say the
> > header and then we will pull from this thread if necessary,
> > OK?
>
> you got two files with this message. These are the slots.h and octopus.h.
> They are the only ones with multi_index_container definitions. Tell me what
> you need else. The files are just how they are, nothing is stripped out.

Hello, thanks for the files. There's a detail that smells
funny: octopus.h begins with

#if !defined(NDEBUG)
#define BOOST_MULTI_INDEX_ENABLE_INVARIANT_CHECKING
#define BOOST_MULTI_INDEX_ENABLE_SAFE_MODE
#endif

(which is commented out in the version you've sent, but
I guess it is when in effect that the crash happens, right?)
whereas slot.h does not have these macros, unless they're
defined in diver.h or in myconnection.h.

Could it be that Boost.MultiIndex headers are included by
diver.h or myconnection.h or slot.cpp (assuming this is
the name where queue::AddQuery etc. are define) *without*
defining safe mode and invariant checking macros?

If so, you've got a problem: these macros have to be
defined/undefined *globally*. i.e. you cannot compile one
.cpp with them turned on and other without them: object
incompatibility ensues.

Looking forward to your feedback,

Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo

PS: I answer your other question at a separate thread.


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net