C ++ 11 Tagged Tuple

C ++ 11 krotek jest fajnych, ale mają dwie niedogodności dla mnie, dostęp do członków według indeksu jest

nieczytelnytrudna do utrzymania (jeśli dodam element w środku krotki, jestem skręcony)

W istocie chcę to osiągnąć

tagged_tuple <name, std::string, age, int, email, std::string> get_record (); {/*...*/}
// And then soomewhere else

std::cout << "Age: " << get_record().get <age> () << std::endl;

Coś podobnego (tagowanie typów) jest zaimplementowane w boost :: property_map, ale nie mam pojęcia, jak zaimplementować go w krotce z dowolną liczbą elementów

PS Proszę zrobićnie zasugeruj zdefiniowanie enum z niejednoznacznymi elementami krotki.

UPD OK, tutaj jest motywacja. W moich projektach muszę być w stanie zdefiniować wiele różnych krotek „w locie” i wszystkie z nich muszą mieć pewne wspólne funkcje i operatory. Nie można tego osiągnąć za pomocą struktur

UPD2 Właściwie mój przykład jest prawdopodobnie nierealny do wdrożenia. Co powiesz na to?

tagged_tuple <tag<name, std::string>, tag<age, int>, tag<email, std::string>> get_record (); {/*...*/}
// And then soomewhere else

std::cout << "Age: " << get_record().get <age> () << std::endl;

questionAnswers(8)

yourAnswerToTheQuestion