Hallo,
ich habe aktuell folgendes Problem:
Ich möchte eine Klasse schreiben, mit der einer verkette Liste unterschiedlicher Datentypen realisiert werden kann.
Das klappt auch alles, jedoch muss ich im Zuge dessen alle Typen (per Zeiger übergeben) in einen typlosen void Zeiger umwandeln.
Beim Zugriff fehlt dann die Information, welcher Datentyp es einmal war:
Format:
struct node{ node *prev{nullptr}; void *elem{nullptr}; node *next{nullptr}; };
Gibt es eine Möglichkeit, einen Datentypen so in der Struktur zu speichern, dass ich den void * später mithilfe dieses in den typen "zurückcasten" kann?
Das alles zur Compiletime stattfinden müsste ist mir klar und eigentlich nicht unmöglich, ich habe nur keine Ahnung wie.
Gedacht wie folgt:
template<typename T>
auto xy(T&&)
{
typesaver savethistype = T;
return *static_cast<savethistype *>(void_ptr);
}
Mit freundlichen Grüßen
Lukas Zander