Home

no matching function call

Montag, 27. Dezember 2010 | Autor:

Ein neu­er 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]

Die­se Mel­dung ist aus einem ganz bestimm­ten Grund fies, der aber nicht offen­sicht­lich ist. Die Mel­dung sug­ge­riert, man habe beim Funk­ti­ons­auf­ruf etwas falsch­ge­macht. Oft stimmt das auch und die Grün­de sind dann solche:

  • Para­me­ter der Funk­ti­on vergessen
  • bei einem (oder meh­re­ren!) Para­me­tern den fal­schen Typ benutzt
  • const igno­riert
  • Tipp­feh­ler

Ich habe über­legt, was davon es sein könn­te. Gegrü­belt und getes­tet. Man fängt ja nach ner Wei­le an, die unmög­lichs­ten Din­ge zu ver­mu­ten. Zum Bei­spiel, dass es viel­leicht dar­an, dass ein Para­me­ter const oder eine Refe­rence ist? Habe ich Tem­pla­tes falsch benutzt? Gera­de für Anfän­ger, die mit con­st­ness, Refe­ren­zen und Tem­pla­tes noch nicht so firm sind, der Super-Gau!

Aber auch mir ist es heu­te passiert.

Es lag dar­an, dass ich die Datei, in der die Funk­ti­on deklariert/definiert ist, nicht includet habe.

Tags »

Trackback: