Fehler in Funktionsdefinition ?
-
Ich habe folgende Funktion
double maxArrayValue(double * Array, int iArraySize) { double maxValue = -1e-300; // ersetzen durch double_max for (long i=0; i < iArraySize; i++) { maxValue = maxValue(maxValue, Array[i]); } return maxValue; }für die mir der Compiler (Visual Studio 2005)
immer folgende Fehlermeldung rauswirft, die ich nicht versteheerror C2064: Ausdruck ergibt keine Funktion, die 2 Argumente übernimmt
Der Fehler tritt allerdings nicht bei der Deklaration sondern bei der Benutzung auf. Das wäre bei mir dann etwas in dieser Art
int DataCount = LaserDynamics.DataCount(); double minGain = minArrayValue(LaserDynamics.GainArray, DataCount);Was will mir der compiler nun sagen?
-
pospiech schrieb:
double maxArrayValue(double * Array, int iArraySize) { double maxValue = -1e-300; // ersetzen durch double_max for (long i=0; i < iArraySize; i++) { maxValue = maxValue(maxValue, Array[i]); } return maxValue; }In Zeile drei ist "maxValue" ein double.
In Zeile sechs rufst du eine Funktion mit dem selben Namen auf.
-
Dein Compiler will Dich darauf aufmerksam machen, dass
maxValuein DeinermaxArrayValueeine Variable des Typsdoubleist, aus der man den von Dir in Zeile 6 gewünschten call nicht bauen kann.greetz, Swordfish
-
Wie du es löst? maxValue siht nach einer selbst geschriebenen Funktion aus. Diese hast du ja sicherlich in einen passenden namespace gepackt. Also einfach:
maxValue = pospiechs_namespace::maxValue(maxValue, Array[i]);Gruß
Don06
-
oder so?

double maxArrayValue(double * Array, int iArraySize) { return *std::max_element(Array, Array + iArraySize); }