2

ブースト MSM ステート マシンの明示的なテンプレート インスタンス化を使用して、プロジェクトのコンパイル時間を短縮しようとしています。ただし、明示的なテンプレートのインスタンス化を追加するたびに、プロジェクトはコンパイルされません。

http://coliru.stacked-crooked.com/a/9850cae23afdada2のドキュメントの例を使用して、問題の例を見つけることができます。(翻訳単位が 1 つしかないため、不自然な例ですが、プロジェクトで明示的なテンプレートのインスタンス化を使用した場合と同じエラーが発生します。)

これらのコンパイルエラーを解決する方法を知っている人はいますか?

/usr/local/include/boost/msm/back/state_machine.hpp: In instantiation of 'boost::msm::back::state_machine<A0, A1, A2, A3, A4>::deferred_events_queue_t& boost::msm::back::state_machine<A0, A1, A2, A3, A4>::get_deferred_queue() [with A0 = player_; A1 = boost::parameter::void_; A2 = boost::parameter::void_; A3 = boost::parameter::void_; A4 = boost::parameter::void_; boost::msm::back::state_machine<A0, A1, A2, A3, A4>::deferred_events_queue_t = std::deque<std::pair<boost::function<boost::msm::back::HandledEnum()>, bool>, std::allocator<std::pair<boost::function<boost::msm::back::HandledEnum()>, bool> > >]':
main.cpp:271:27:   required from here
/usr/local/include/boost/msm/back/state_machine.hpp:1346:40: error: 'struct boost::msm::back::state_machine<player_>::deferred_msg_queue_helper<boost::msm::back::state_machine<player_>, int>' has no member named 'm_deferred_events_queue'
         return m_deferred_events_queue.m_deferred_events_queue;
                ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
...
4

1 に答える 1