
Eric Niebler wrote:
- What is your evaluation of the design?
Very nice. Joel and Dan have put a lot of thought into the design of Fusion. Lazy heterogeneous sequences are very powerful. As Joel and I have discussed extensively in recent weeks, support for segmented data structures would make traversal of some sorts of sequences much more efficient. Joel seems interested and committed to making these changes, and I'm happy to help.
I think the segmentation idea is very good. I love the direction that this is leading to. Thank you very much for spear-heading the effort.
Like Dave, I'd like to see some more thought put into the extensibility mechanism. Defining new Fusion iterators is a bit painful, and something like a Fusion iterator adaptor library might be very useful. That might be possible if the metafunctions were all part of the same struct. I'd be satisfied with an analysis that breaks down the pros and cons of such an approach.
As I mentioned in my reply to Eric Friedman, the extensibility mechanism is no more difficult than extending MPL. It just so happens that the extension section gave a not so trivial example (that of a random access and associative sequence). Anyway, I do agree that a better extension mechanism, if one can be found, would be a definite boon to using Fusion.
Some miscelaneous questions:
- Why is there a traits::tag_of<> for extracting the sequence tag, but no corresponding metafunction for extracting the iterator's tag?
traits::tag_of<> should be usable for iterators too. The docs should make that clear.
- Why do I have to declare both my sequence's category *and* my iterator's category? Won't there always be an obvious relation between them?
Iterators do not have the exact same categories as sequences. For example, iterators do not have the associative category.
- how is is_view<> used? The Extensibility section says I have to specialize it, but I don't think it says anywhere why.
I'll discuss this in another post.
- Where is as_tuple? I need it!
It resides in the future :)
- What is your evaluation of the implementation?
Top notch. Clean and very granular headers. The directory structure could be a bit simpler, but that's a nit.
Thanks! What directory structure do you have in mind? [...]
I vote to accept.
Thank you very much! Regards, -- Joel de Guzman http://www.boost-consulting.com http://spirit.sf.net