
Andrey Semashev wrote:
ROM friendly? What is it?
This means in particular that the transition table should be initialized at static phase of static initialization so that a compiler can store it in read-only memory. I know it's very important in embedded environment where fsm are often used, to store as much as possible in read-only memory.
4. Make sure it may scale beyond default mpl::vector capacity.
You may use any MPL sequence when expressing states and transition rules, including mpl::list which is far less limited. But speaking frankly, I think a compiler may die even before mpl::vector limit is reached.
I remember I compiled the "unique" metafunction for a list of more than 400 transitions. I thought about spliting my global transition table to several smaller tables (for example, each table would represent all transitions from given state) and instantiate each table in separate translation units. -- Alexander Nasonov http://nasonov.blogspot.com Humanity is acquiring all the right technology for all the wrong reasons. -- Buckminster Fuller -- This quote is generated by: /usr/pkg/bin/curl -L http://tinyurl.com/veusy \ | sed -e 's/^document\.write(.//' -e 's/.);$/ --/' \ -e 's/<[^>]*>//g' -e 's/^More quotes from //' \ | fmt | tee ~/.signature-quote