The title describes the core of my question, though the actual problem is hard to describe.

Essentially, I need to create a class that behaves like std::tuple which also allows the user to access its members by type instead of index (assuming type uniqueness is guaranteed), but I do not want the class itself to be templated, i.e. 84 more words