
On Oct 27, 2004, at 4:22 AM, Patrick Kowalzick wrote:
Dear all,
I am not sure which version of tuples is actual and should be used:
-The version in boost/tuple is working and seems consitent to the manual on the boost homepage.
-The version in boost/spirit/fusion/sequence is working too and seems to be consistent to "C++ Standard Library Technical Report". tuple_size and tuple_element exist, which do not exist in the first version.
Why are there two versions?
The former was the original Tuples library, whereas the latter was written later according to the exact wording of the Library TR using a different implementation technique.
Which one shall I use?
It doesn't really matter... you may get better performance (compile-time and run-time) out of the Fusion version, but it's also unreviewed code. [*] I tend to use the original boost/tuple out of habit.
P.S.: I have another short question, and need a small hint (what to search ;) ) for kind of a "compile time for-loop". Something like this: index[0] = fw_index::template get_index< tuples::tuple_element< 0, TTuple>::type >(); index[1] = fw_index::template get_index< tuples::tuple_element< 1, TTuple>::type >(); ...
Todd Veldhuizen's web page on template metaprogramming might be a good start: http://osl.iu.edu/~tveldhui/papers/Template-Metaprograms/meta-art.html Or, if you can hold off a few weeks, David Abrahams and Aleksey Gurtovoy have written a more extensive book on template metaprogramming: http://www.awprofessional.com/title/0321227255 Doug [*] It's undoubtedly correct code, but still...