Algorithmen Templates
-
Hallo Leute,
ich versuche mich gerade an Templates und komme irgendwie nicht weiter. Ich wollte eigentlich einen unabhängigen Berechnungsalgorithmus schreiben.
template<typename S, typename D, typename T> class calc;Hängt also von der [S] verwendete Strategie, [D] Daten(2D/3D/nD)-Matrix und [T]yp (was eigentlich gerechnet soll. Irgendwie finde ich als Anfänger keinen Ansatz. Könnte mir jemand einen Tipp geben?
Danke
-
templates schrieb:
Irgendwie finde ich als Anfänger keinen Ansatz. Könnte mir jemand einen Tipp geben?
Nein. Du hast so gut wie garkeine Informationen gegeben, also kann man dir so gut wie garkeinen Tip geben. Vielleicht fängst du erstmal mit einem Template-Parameter an und lässt z.B. D und T erstmal fest. Danach kannst due die Sache immer weiter verallgemeinern.
-
pumuckl schrieb:
Nein. Du hast so gut wie garkeine Informationen gegeben, also kann man dir so gut wie garkeinen Tip geben. Vielleicht fängst du erstmal mit einem Template-Parameter an und lässt z.B. D und T erstmal fest. Danach kannst due die Sache immer weiter verallgemeinern.
Sorry, ich dachte das Problem wäre alltäglich...
Beispiel:
Eine Gerade kann mit: 2 Punkten oder ein Punkt + Steigung berechnet werden. Ich dachte an so einen Aufruf
calc<Gerade,ZweiPunkte,XYArray> test(datensatz); test.rechne();sollte man überhaupt so etwas machen?
-
templates schrieb:
sollte man überhaupt so etwas machen?
Nein, das ist nicht der Anwendungszweck von Templates.
-
kAKif schrieb:
templates schrieb:
sollte man überhaupt so etwas machen?
Nein, das ist nicht der Anwendungszweck von Templates.
Policies sind durchaus ein Anwendungszweck von Templates. Allerdings würde es hier wohl eine kleine Helfer-Funktion auch tun.
-
314159265358979 schrieb:
kAKif schrieb:
templates schrieb:
sollte man überhaupt so etwas machen?
Nein, das ist nicht der Anwendungszweck von Templates.
Policies sind durchaus ein Anwendungszweck von Templates. Allerdings würde es hier wohl eine kleine Helfer-Funktion auch tun.
Ich habe etwa 10+ Geometrien die ich abdecken möchte, tendenz steigend. Policies ist ein sehr gutes Stichwort, es ist exakt das was ich brauche. Bestimmtes Verhalten zu bestimmten Parametern und möglichst allgemein.
-
Vielleicht ist ja boost::geometry was für dich. http://www.boost.org/doc/libs/1_47_0/libs/geometry/doc/html/index.html
-
314159265358979 schrieb:
Vielleicht ist ja boost::geometry was für dich. http://www.boost.org/doc/libs/1_47_0/libs/geometry/doc/html/index.html
Danke. Ich verwende schon einen Teil davon

-
Ein allgemeiner Tipp: Mit Policies musst du manchmal aufpassen, dass die Compilezeit-Abhängigkeiten nicht explodieren (oder die Codegrösse und Kompilierzeit). Boost ist diesbezüglich nicht immer das beste Vorbild. Manchmal lohnt es sich, statische und dynamische Polymorphie durch Type Erasure zu kombinieren.