Ich habe 2 ähnliche Funktionen, die Berechnungen mit Graphknoten oder Kanten durchführen.
%Vor%Die Frage ist: Wie kann man die Code-Duplikation in dieser Situation loswerden? Gibt es eine mögliche Lösung mit Vorlagen?
Sie könnten ein Template-Argument für das Vertex
/ Edge
- und Manager-Objekt und dann verwenden std::mem_fn
für die Funktion, die aufgerufen werden soll.
Umbrechen Sie den eigentlichen Funktionsaufruf, um den Aufruf zu erleichtern. Vielleicht etwas wie
%Vor%Nicht getestet, aber es sollte hoffentlich einen Ausgangspunkt bieten.
Hier ist ein einfacher Weg, die Funktion zu tempern:
%Vor% Und hier ist, wie Sie get_iterator
:
Um get_iterator
für jeden Typ nützlich zu machen, können Sie eine Vorlage verwenden:
Tags und Links c++