Home

no matching function call

Montag, 27. Dezember 2010 | Autor:

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 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ünde sind dann solche:

  • Para­me­ter der Funk­tion 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önnte. Gegrü­belt und getes­tet. Man fängt ja nach ner Weile an, die unmög­lichs­ten Dinge zu ver­mu­ten. Zum Bei­spiel, dass es viel­leicht daran, dass ein Para­me­ter const oder eine Refe­rence ist? Habe ich Tem­pla­tes falsch benutzt? Gerade 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 heute passiert.

Es lag daran, dass ich die Datei, in der die Funk­tion deklariert/definiert ist, nicht inclu­det habe.

Tags »

Trackback: Trackback-URL |  Feed zum Beitrag: RSS 2.0
Thema: Sezierte C++-Käfer

Diesen Beitrag kommentieren.

Kommentar abgeben