
David Abrahams wrote: [snip]
Why are you requiring that the user pass mpl::list<> as opposed to some other mpl sequence?
I need to modify that sequence internally. If any sequence was allowed (including immutable ones), I would need to copy that sequence into an mpl::list<> first. I suspect that the copying slows down compilation noticeably (I never had the chance to make measurements, so this may well be FUD), so I figured that requiring a list is the best way to give the user the opportunity to keep compilation as fast as possible. Sure, I could make a copy only if the user doesn't pass an mpl::list<> and document that in the interface but nobody has ever made a request in this direction. I guess this is due to the fact that pretty much everybody specifies the InnerInitial states inline: struct Y; struct Z; struct X : sc::simple_state< X, Machine, mpl::list< Y, Z > > {}; That is, I can't really think of a real-world example where you would want to use an algorithm to fill that list... Would you allow any mpl sequence anyway? Regards, -- Andreas Huber When replying by private email, please remove the words spam and trap from the address shown in the header.