boost fusion- what exactly is the emphasis of the compile-time abilities?

134 views Asked by At

I have a few questions regarding boost::fusion

1) What exactly is the emphasis on the compile-time capabilities of fusion? Is it just to "glue" template metaprogramming with "normal" run-time programming (hence they say fusion is the mixing of compile time with run time code)? If so, I thought you could combine metaprogramming with normal run-time C++ already?

2) Does fusion only work with tuples? I seem to see tuples in all the fusion examples. Or, is tuple just an example of a fusion "sequence" and tuple, along with other types can count towards a fusion sequence?

3) Again, trying to understand fusion- how does fusion differ from a framework to allow generic coding? We have templates for that right? Again, is the emphasis on fusion being with the compile-time programming?

4) Are there any prerequisite boost libraries one needs to know in order to use fusion? I have seen/heard MPL mentioned a few times.

5) What are the areas in which fusion most used?

6) Why do a lot of the metaprogramming (compile-time) functions return types?

Any additional advice regarding boost fusion is most appreciated.

0

There are 0 answers