How is std::tuple implemented?
One approach to implementing tuples is using multiple-inheritance. The tuple-elements are held by leaf-classes, and the tuple class itself inherits from multiple leafs. In pseudo-code: template<typename T0, typename T1, …, typename Tn> class PseudoTuple : TupleLeaf<0, T0>, TupleLeaf<1, T1>, …, TupleLeaf<n, Tn> { … }; Each leaf has an index, so that each base-class becomes … Read more