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;