Hi all,

I'm trying to compile the StopWatch.cpp example on SuSE10 and I'm getting a whole bunch of errors (or at least what gcc thinks are errors):

$ gcc --version
gcc (GCC) 4.0.2 20050901 (prerelease) (SUSE Linux)
Copyright (C) 2005 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ g++ StopWatch.cpp
/usr/include/c++/4.0.2/bits/stl_tree.h: In member function âvoid std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::destroy_node(std::_Rb_tree_node<_Val>*) [with _Key = const boost::statechart::detail::state_base<std::allocator<void>, boost::statechart::detail::rtti_policy>*, _Val = std::pair<const boost::statechart::detail::state_base<std::allocator<void>, boost::statechart::detail::rtti_policy>* const, std::list<boost::intrusive_ptr<const boost::statechart::event_base>, std::allocator<boost::intrusive_ptr<const boost::statechart::event_base> > > >, _KeyOfValue = std::_Select1st<std::pair<const boost::statechart::detail::state_base<std::allocator<void>, boost::statechart::detail::rtti_policy>* const, std::list<boost::intrusive_ptr<const boost::statechart::event_base>, std::allocator<boost::intrusive_ptr<const boost::statechart::event_base> > > > >, _Compare = std::less<const boost::statechart::detail::state_base<std::allocator<void>, boost::statechart::detail::rtti_policy>*>, _Alloc = std::allocator<const boost::statechart::detail::state_base<std::allocator<void>, boost::statechart::detail::rtti_policy>*>]â:
/usr/include/c++/4.0.2/bits/stl_tree.h:1096:   instantiated from âvoid std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_erase(std::_Rb_tree_node<_Val>*) [with _Key = const boost::statechart::detail::state_base<std::allocator<void>, boost::statechart::detail::rtti_policy>*, _Val = std::pair<const boost::statechart::detail::state_base<std::allocator<void>, boost::statechart::detail::rtti_policy>* const, std::list<boost::intrusive_ptr<const boost::statechart::event_base>, std::allocator<boost::intrusive_ptr<const boost::statechart::event_base> > > >, _KeyOfValue = std::_Select1st<std::pair<const boost::statechart::detail::state_base<std::allocator<void>, boost::statechart::detail::rtti_policy>* const, std::list<boost::intrusive_ptr<const boost::statechart::event_base>, std::allocator<boost::intrusive_ptr<const boost::statechart::event_base> > > > >, _Compare = std::less<const boost::statechart::detail::state_base<std::allocator<void>, boost::statechart::detail::rtti_policy>*>, _Alloc = std::allocator<const boost::statechart::detail::state_base<std::allocator<void>, boost::statechart::detail::rtti_policy>*>]â
/usr/include/c++/4.0.2/bits/stl_tree.h:570:   instantiated from âstd::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::~_Rb_tree() [with _Key = const boost::statechart::detail::state_base<std::allocator<void>, boost::statechart::detail::rtti_policy>*, _Val = std::pair<const boost::statechart::detail::state_base<std::allocator<void>, boost::statechart::detail::rtti_policy>* const, std::list<boost::intrusive_ptr<const boost::statechart::event_base>, std::allocator<boost::intrusive_ptr<const boost::statechart::event_base> > > >, _KeyOfValue = std::_Select1st<std::pair<const boost::statechart::detail::state_base<std::allocator<void>, boost::statechart::detail::rtti_policy>* const, std::list<boost::intrusive_ptr<const boost::statechart::event_base>, std::allocator<boost::intrusive_ptr<const boost::statechart::event_base> > > > >, _Compare = std::less<const boost::statechart::detail::state_base<std::allocator<void>, boost::statechart::detail::rtti_policy>*>, _Alloc = std::allocator<const boost::statechart::detail::state_base<std::allocator<void>, boost::statechart::detail::rtti_policy>*>]â
/usr/include/c++/4.0.2/bits/stl_map.h:92:   instantiated from âboost::statechart::state_machine<MostDerived, InitialState, Allocator, ExceptionTranslator>::state_machine() [with MostDerived = StopWatch, InitialState = Active, Allocator = std::allocator<void>, ExceptionTranslator = boost::statechart::null_exception_translator]â
StopWatch.cpp:74:   instantiated from here
/usr/include/c++/4.0.2/bits/stl_tree.h:389: error: no matching function for call to âstd::allocator<const boost::statechart::detail::state_base<std::allocator<void>, boost::statechart::detail::rtti_policy>*>::destroy(std::pair<const boost::statechart::detail::state_base<std::allocator<void>, boost::statechart::detail::rtti_policy>* const, std::list<boost::intrusive_ptr<const boost::statechart::event_base>, std::allocator<boost::intrusive_ptr<const boost::statechart::event_base> > > >*)â
/usr/include/c++/4.0.2/ext/new_allocator.h:109: note: candidates are: void __gnu_cxx::new_allocator<_Tp>::destroy(_Tp*) [with _Tp = const boost::statechart::detail::state_base<std::allocator<void>, boost::statechart::detail::rtti_policy>*]
/usr/include/c++/4.0.2/bits/stl_tree.h: In member function âstd::_Rb_tree_node<_Val>* std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_create_node(const _Val&) [with _Key = const boost::statechart::detail::state_base<std::allocator<void>, boost::statechart::detail::rtti_policy>*, _Val = std::pair<const boost::statechart::detail::state_base<std::allocator<void>, boost::statechart::detail::rtti_policy>* const, std::list<boost::intrusive_ptr<const boost::statechart::event_base>, std::allocator<boost::intrusive_ptr<const boost::statechart::event_base> > > >, _KeyOfValue = std::_Select1st<std::pair<const boost::statechart::detail::state_base<std::allocator<void>, boost::statechart::detail::rtti_policy>* const, std::list<boost::intrusive_ptr<const boost::statechart::event_base>, std::allocator<boost::intrusive_ptr<const boost::statechart::event_base> > > > >, _Compare = std::less<const boost::statechart::detail::state_base<std::allocator<void>, boost::statechart::detail::rtti_policy>*>, _Alloc = std::allocator<const boost::statechart::detail::state_base<std::allocator<void>, boost::statechart::detail::rtti_policy>*>]â:
/usr/include/c++/4.0.2/bits/stl_tree.h:793:   instantiated from âtypename std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_insert(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, const _Val&) [with _Key = const boost::statechart::detail::state_base<std::allocator<void>, boost::statechart::detail::rtti_policy>*, _Val = std::pair<const boost::statechart::detail::state_base<std::allocator<void>, boost::statechart::detail::rtti_policy>* const, std::list<boost::intrusive_ptr<const boost::statechart::event_base>, std::allocator<boost::intrusive_ptr<const boost::statechart::event_base> > > >, _KeyOfValue = std::_Select1st<std::pair<const boost::statechart::detail::state_base<std::allocator<void>, boost::statechart::detail::rtti_policy>* const, std::list<boost::intrusive_ptr<const boost::statechart::event_base>, std::allocator<boost::intrusive_ptr<const boost::statechart::event_base> > > > >, _Compare = std::less<const boost::statechart::detail::state_base<std::allocator<void>, boost::statechart::detail::rtti_policy>*>, _Alloc = std::allocator<const boost::statechart::detail::state_base<std::allocator<void>, boost::statechart::detail::rtti_policy>*>]â
/usr/include/c++/4.0.2/bits/stl_tree.h:902:   instantiated from âtypename std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::insert_unique(std::_Rb_tree_iterator<_Val>, const _Val&) [with _Key = const boost::statechart::detail::state_base<std::allocator<void>, boost::statechart::detail::rtti_policy>*, _Val = std::pair<const boost::statechart::detail::state_base<std::allocator<void>, boost::statechart::detail::rtti_policy>* const, std::list<boost::intrusive_ptr<const boost::statechart::event_base>, std::allocator<boost::intrusive_ptr<const boost::statechart::event_base> > > >, _KeyOfValue = std::_Select1st<std::pair<const boost::statechart::detail::state_base<std::allocator<void>, boost::statechart::detail::rtti_policy>* const, std::list<boost::intrusive_ptr<const boost::statechart::event_base>, std::allocator<boost::intrusive_ptr<const boost::statechart::event_base> > > > >, _Compare = std::less<const boost::statechart::detail::state_base<std::allocator<void>, boost::statechart::detail::rtti_policy>*>, _Alloc = std::allocator<const boost::statechart::detail::state_base<std::allocator<void>, boost::statechart::detail::rtti_policy>*>]â
/usr/include/c++/4.0.2/bits/stl_map.h:384:   instantiated from âtypename std::_Rb_tree<_Key, std::pair<const _Key, _Tp>, std::_Select1st<std::pair<const _Key, _Tp> >, _Compare, _Alloc>::iterator std::map<_Key, _Tp, _Compare, _Alloc>::insert(typename std::_Rb_tree<_Key, std::pair<const _Key, _Tp>, std::_Select1st<std::pair<const _Key, _Tp> >, _Compare, _Alloc>::iterator, const std::pair<const _Key, _Tp>&) [with _Key = const boost::statechart::detail::state_base<std::allocator<void>, boost::statechart::detail::rtti_policy>*, _Tp = std::list<boost::intrusive_ptr<const boost::statechart::event_base>, std::allocator<boost::intrusive_ptr<const boost::statechart::event_base> > >, _Compare = std::less<const boost::statechart::detail::state_base<std::allocator<void>, boost::statechart::detail::rtti_policy>*>, _Alloc = std::allocator<const boost::statechart::detail::state_base<std::allocator<void>, boost::statechart::detail::rtti_policy>*>]â
/usr/include/c++/4.0.2/bits/stl_map.h:339:   instantiated from â_Tp& std::map<_Key, _Tp, _Compare, _Alloc>::operator[](const _Key&) [with _Key = const boost::statechart::detail::state_base<std::allocator<void>, boost::statechart::detail::rtti_policy>*, _Tp = std::list<boost::intrusive_ptr<const boost::statechart::event_base>, std::allocator<boost::intrusive_ptr<const boost::statechart::event_base> > >, _Compare = std::less<const boost::statechart::detail::state_base<std::allocator<void>, boost::statechart::detail::rtti_policy>*>, _Alloc = std::allocator<const boost::statechart::detail::state_base<std::allocator<void>, boost::statechart::detail::rtti_policy>*>]â
../../../../boost/statechart/state_machine.hpp:576:   instantiated from âvoid boost::statechart::state_machine<MostDerived, InitialState, Allocator, ExceptionTranslator>::defer_event(const boost::statechart::event_base&, const boost::statechart::detail::state_base<Allocator, boost::statechart::detail::rtti_policy>*) [with MostDerived = StopWatch, InitialState = Active, Allocator = std::allocator<void>, ExceptionTranslator = boost::statechart::null_exception_translator]â
../../../../boost/statechart/simple_state.hpp:495:   instantiated from âboost::statechart::detail::reaction_result boost::statechart::simple_state<MostDerived, Context, InnerInitial, historyMode>::react_impl(const typename Context::inner_context_type::event_base_type&, typename Context::inner_context_type::rtti_policy_type::id_type) [with MostDerived = Stopped, Context = Active, InnerInitial = boost::mpl::list<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::statechart::history_mode historyMode = has_no_history]â
StopWatch.cpp:188:   instantiated from here
/usr/include/c++/4.0.2/bits/stl_tree.h:367: error: no matching function for call to âstd::allocator<const boost::statechart::detail::state_base<std::allocator<void>, boost::statechart::detail::rtti_policy>*>::construct(std::pair<const boost::statechart::detail::state_base<std::allocator<void>, boost::statechart::detail::rtti_policy>* const, std::list<boost::intrusive_ptr<const boost::statechart::event_base>, std::allocator<boost::intrusive_ptr<const boost::statechart::event_base> > > >*, const std::pair<const boost::statechart::detail::state_base<std::allocator<void>, boost::statechart::detail::rtti_policy>* const, std::list<boost::intrusive_ptr<const boost::statechart::event_base>, std::allocator<boost::intrusive_ptr<const boost::statechart::event_base> > > >&)â
/usr/include/c++/4.0.2/ext/new_allocator.h:105: note: candidates are: void __gnu_cxx::new_allocator<_Tp>::construct(_Tp*, const _Tp&) [with _Tp = const boost::statechart::detail::state_base<std::allocator<void>, boost::statechart::detail::rtti_policy>*]

---- end of output ----

Does anyone have any clues to impart as to what's going on?

--
Bardur Arantsson <bardur.arantsson@gmail.com>
Bardur Arantsson <bardur@scientician.net>
Bardur Arantsson <bardur@imada.sdu.dk>