Hejsan! Använd inte funktionspekare i C++. De är en kvarleva från C. Tyvärr, kan jag inte få igång boost eller boost::tr1, men hur löser man det utan boost?Hur skapa en vector av funktionspekare
Hur skapar man en std::vektor av funktionpekare, så man kan t ex bara kan skriva typ:
<code>
int any(const History & a){
/* kod här*/
}
int yna(const History & a){
/* kod här*/
}
Hostory history;
std::vector<int (x)(const History & a) functions;
functions.push_back(any);
functions.push_back(yna);
for(int i=0;i<functions.size();i++){
functions[i](history); //här ska den köra funktionerna...
}
</code>
Jag har nämligen massor av funktioner som ska anropas flera gånger, men vill inte skriva alla funktions namn om igen o så, lättare ju om man bara kunde lägga alla i en vektor o sedan köra alla via en for loop.
Mycket Tacksam för svar.
Tack på förhand!Sv: Hur skapa en vector av funktionspekare
Bättre att använda funktionsobjekt från tr1 eller boost.
typedef std::vector<tr1::function<int (const History&)> > funcvector;
Eller varför inte en färdig komponent som boost::signal
boost::signal<int (const History&)> funcs;
funcs.connect(any);
funcs.connecy(yna);
funcs(history); // anropar alla och returnerar sista värdetSv:Hur skapa en vector av funktionspekare