
In boost/fusion/tuple/tuple.hpp there's this:
get(Tuple& tup) { typedef result_of::at_c<Tuple, N> at_meta; return extension::at_impl <typename traits::tag_of<Tuple>::type >::template apply<Tuple, mpl::int_<N> >::call(tup); }
I don't see any use of the at_meta typedef. What's the purpose of this typedef?
This appears to be the result of a bit of cut and paste from the at and at_c implementations, which also have the redundant typedef. The get implementations should be calling at_c directly, rather than implementing more tag_dispatching to the at_impl type themselves. I've tidied things up, removing the redundant typedefs in both get and at, and modifying get to call at_c directly. Thanks for pointing this one out. Cheers Dan