Ein neuer Tag, eine neue Fehlermeldung:
/home/nico/code/FAnToM/src/visAlgos/IntegralLines/../../math/src/ODESolver/StreakLine.hh:76:2: error: no matching function for call to ‘Tracer<2, (FLineType)0u>::Tracer(std::vector<MeshNode>, boost::shared_ptr<const FTimeDependentTensorField>&, FPosition&, double&, const double&, const double&, int)’
/home/nico/code/FAnToM/src/visAlgos/IntegralLines/../../math/src/ODESolver/Tracer.hh:392:3: note: candidates are:
[... (diverse Vorschläge ausgelassen)]
/home/nico/code/FAnToM/src/visAlgos/IntegralLines/../../math/src/ODESolver/Tracer.hh:886:1: note: Tracer<DIM, lineT>::Tracer(std::vector<MeshNode>&, Tracer<DIM, lineT>::Fieldtype, const FPosition&, double, double, double, unsigned int) [with int DIM = 2, FLineType lineT = (FLineType)0u, Tracer<DIM, lineT>::Fieldtype = boost::shared_ptr<const FTimeDependentTensorField>, FPosition = FArray]
Diese Meldung ist aus einem ganz bestimmten Grund fies, der aber nicht offensichtlich ist. Die Meldung suggeriert, man habe beim Funktionsaufruf etwas falschgemacht. Oft stimmt das auch und die Gründe sind dann solche:
- Parameter der Funktion vergessen
- bei einem (oder mehreren!) Parametern den falschen Typ benutzt
- const ignoriert
- Tippfehler
Ich habe überlegt, was davon es sein könnte. Gegrübelt und getestet. Man fängt ja nach ner Weile an, die unmöglichsten Dinge zu vermuten. Zum Beispiel, dass es vielleicht daran, dass ein Parameter const oder eine Reference ist? Habe ich Templates falsch benutzt? Gerade für Anfänger, die mit constness, Referenzen und Templates noch nicht so firm sind, der Super-Gau!
Aber auch mir ist es heute passiert.
Es lag daran, dass ich die Datei, in der die Funktion deklariert/definiert ist, nicht includet habe.