Andrew Gresyk Profile picture
Programmer, author and maintainer of https://t.co/JWAKK9LImm library.
20 Mar 19
A thread on #cpp #state_machine #software_design.

Random ideas around writing an FSM library, with examples from, and motivations behind hfsm.dev, a header-only library created using #cpp template #metaprogramming with #gamedev, #embedded and #robotics in mind.
*Reuse vs reimplement*

State machines can be deceptively complex, and, unless a trivial one is needed, a reusable framework is highly recommended.

Rolling out one's own for special needs is ok.

Otherwise - pick from a variety of existing solutions from #boost, on #github, etc.
*Static vs dynamic structure*

The first important decision is whether the structure of FSM could be built/changed at runtime.

The implementation of a dynamic FSM relies on heap-allocated memory, resizable containers and pointers, all of which come at a steep perf price.
Read 22 tweets