Hi all,
Here am I already at the 2nd compiler (VC9SP1) crash of the week (not kidding...):
fatal error C1001: An internal error has occurred in the compiler.
(compiler file 'f:\dd\vctools\compiler\utc\src\p2\p2symtab.c', line 5809)
Attached is a test file producing the problem. The crash happens when I add BOOST_PROTO_DEFINE_OPERATORS. Am I doing something wrong?
Sadly, this was a workaround to avoid deriving my class from proto::terminal because of a problem (supposedly) created by the address-of operator. Can someone save my day and tell me if there is a way to deactivate this operator for terminals?
Concretely, I have:
struct Empty: public state<>, proto::terminal
Which brings me, here:
&::boost::fusion::at_key<State>(xxx) // xxx being a fusion set containing Empty
the following problem:
1>f:\projects\MSM2\SM\boost/msm/back/state_machine.hpp(1061) : error
C2784: '::boost::enable_if::type
boost::msm::back::state_machine::execute_entry(StateType
*,const EventType &,FsmType &,boost::msm::back::dummy<__formal>)' :
could not deduce template argument for 'StateType *' from 'const
boost::proto::exprns_::expr'
1> with
1> [
1> Derived=`anonymous-namespace'::player_,
1> HistoryPolicy=boost::msm::back::NoHistory,
1> CopyPolicy=boost::msm::back::DeepCopy,
1> __formal=2
1> ]
1> and
1> [
1> Tag=boost::proto::tag::address_of,
1> Args=boost::proto::argsns_::list1boost::msm::front::state_tag>
&>,
1> Arity=1
1> ]
I have another workaround but it requires more typing and is quite
ugly, so any help would be greatly appreciated.
Thanks,
Christophe
_________________________________________________________________
Windows Live™: Keep your life in sync. Check it out!
http://windowslive.com/explore?ocid=TXT_TAGLM_WL_t1_allup_explore_012009