Boost C++ Libraries: Ticket #4926: MSM deferred events doesn`t works when compile using msvc 8.0 https://svn.boost.org/trac10/ticket/4926 <p> Porting my state machine from Boost.Statechart to MSM I have came across with strange problem, events deferring feature that worked well with msvc 10.0 in test programs, doesn`t want to work in real application compiled with msvc 8.0. After digging in msm sources I found the place and found how to fix it. In msm/back/state_machine.hpp there is template handle_defer_helper which, as I found, always use empty implementation. I have check has_fsm_deferred_events metafunctor and it return true, but vc 8.0 compiler continues to use empty implementation. I replaced enable_if<code>s return type from void to int and it helped. Seems void type is some kind of "priviledged type" for msvc, I don</code>t know how to explain it. </p> <p> Patch attached to bug </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/4926 Trac 1.4.3 Kozlov Taras Fri, 03 Dec 2010 14:59:57 GMT attachment set https://svn.boost.org/trac10/ticket/4926 https://svn.boost.org/trac10/ticket/4926 <ul> <li><strong>attachment</strong> → <span class="trac-field-new">01-msm-defer-events-bug.patch</span> </li> </ul> Ticket Christophe Henry Wed, 15 Dec 2010 21:43:20 GMT <link>https://svn.boost.org/trac10/ticket/4926#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/4926#comment:1</guid> <description> <p> Fascinating! VC8 is really full of surprises. I don't think void is a special type. Indeed, inside handle_defer_helper I use deferred_msg_queue_helper, which uses the exact same construct. And it works otherwise the problem would still be there. Looks like another random VC8 bug. </p> <p> Whatever, if this makes it work, I'm happy to apply the patch for the 1.46. As I don't have this compiler any more, I'll trust you that it works with VC8. Fixed inside trunk revision 67253. Thanks a lot for your valuable report and the patch! </p> <p> Christophe </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Christophe Henry</dc:creator> <pubDate>Wed, 15 Dec 2010 21:44:45 GMT</pubDate> <title>status changed; resolution set https://svn.boost.org/trac10/ticket/4926#comment:2 https://svn.boost.org/trac10/ticket/4926#comment:2 <ul> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">fixed</span> </li> </ul> Ticket