Hi,
I got a huge problem with a boost::ptr_map. I am storing instances of
boost::signals2::signal in it and try to dereference a iterator to one
of those instances, to be able to call the operator () of the signal.
This compiles correctly on Linux and gcc 4.4 but fails on Windows using
Visual C++ 2008.
The ptr_map is of type:
typedef boost::ptr_map > EventMap;
And what i am trying to do is this:
EventMap::iterator it = mEvents.find (event);
if (it == mEvents.end ())
EXCEPTION ("Event doesn't exist");
(*it->second) (evt);
The error message on Windows:
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include
\xutility(419) : error C2664:
'boost::signals2::detail::stack_allocator::stack_allocator(boost::signals2::detail::stack_storage *)': Konvertierung des Parameters 1 von 'boost::signals2::detail::stack_allocator' in 'boost::signals2::detail::stack_storage *' nicht möglich
with
[
T=std::_Aux_cont,
n_stack_elements=10
]
and
[
T=boost::shared_ptr<void>,
n_stack_elements=10
]
and
[
T=std::_Aux_cont,
n_stack_elements=10
]
(First line translated is: Conversion of the first parameter from ...
to .. not possible).
For the complete code see
http://github.com/rmbl/openspeak/raw/487dfcbea24df79216171f37d3102f8e76c8f78... and http://github.com/rmbl/openspeak/raw/487dfcbea24df79216171f37d3102f8e76c8f78...
Thanks for any help. Regards
Philipp Gildein