Schablonentyp zur Laufzeit abrufen

8

Ich habe die folgende Methode, die einen Vektor von C-Stil-Strukturen erhält und seine Elemente nacheinander verarbeitet.

Ich möchte es erweitern, um mehr Strukturtypen zu erhalten, ohne meinen Code zu duplizieren.

Da alle Arten von Strukturen dieselben Feldnamen enthalten, wäre es am elegantesten, diese neue Anforderung mithilfe von Vorlagen zu implementieren.

Ich kann jedoch nicht entscheiden, wie das zweite Argument an die Funktion write_db übergeben wird. Dieses Argument, das eine Enumeration pro Strukturtyp ist - gibt es eine Option, um dies zur Laufzeit zu erfassen?

%Vor%

Ich habe darüber nachgedacht, den enum-Wert als Konstante für jede Instanz von struct hinzuzufügen, aber ich hoffe, einen besseren Ansatz zu finden, der kein grundlegendes Strukturformat ändern würde.

    
Zohar81 05.01.2016, 07:52
quelle

2 Antworten

10

Wenn Sie kein Mitglied hinzufügen möchten, können Sie einen Typ angeben.

%Vor%     
molbdnilo 05.01.2016, 08:03
quelle
3

Haben Sie ein Typ-Feld für jede Klasse, die POLICY -able ist (wenn Sie meine Bedeutung verstehen), von denen foo ein Beispiel ist:

%Vor%

Verwenden Sie dann write_db(item.key1, POLICY::type) entsprechend.

    
Bathsheba 05.01.2016 08:01
quelle

Tags und Links