Functionspointer in std::vector
-
ich hab nen Functionspointer und will Funktionen im vector speichern.
Versucht hab ich es sotypedef double (*func)(double); std::vector<func>fn; double fn1(double x) { return x; } ... fn.push_back(fn1);
Nur bekomm ich dann die Meldung
Konvertierung des Parameters 1 von 'double (double)' in 'double (__cdecl *const & )(double)' nicht moeglich
Das geht aber
func fns[8]; fns[0] = fn1;
Warum?
-
Welchen Compiler benutzt du denn? Sowohl VC++ 8 als auch Comeau sagen, dass das legaler Code ist.
-
VC++ 6.0
-
fn.resize(2); fn[0] = fn1; ...
Geht auch mit std::vector. Liegt wohl am VC++ 6.0
-
Probier mal was der VC6 zu
fn.push_back(&fn1);
sagt.