c++98 tuple implementation with virtual inheritance