-- All science is either physics or stamp collecting
gebruik een callbackJasper91 schreef op zaterdag 13 december 2008 @ 23:19:
Any suggestions?
specifieker dan dat kan ik niet worden op basis van de extreem magere informatie
oprecht vertrouwen wordt nooit geschaad
http://www.newty.de/fpt/fpt.html
Onder 2.5
Onder 2.5
functie pointer?
dit werkt alleen voor "gewone" functies, niet voor members van een class (tenzij static)
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| typedef void (*functietype)(void); void a(void) { puts("in a"); } void b(void) { puts("in b"); } void call(functietype functie) { functie(); } int main(int, char **) { call(a); call(b); return 0; } |
dit werkt alleen voor "gewone" functies, niet voor members van een class (tenzij static)
-niks-
Gebruik std::tr1::function (of boost::function). Kun je ook pointers naar member functions maken en parameters binden.
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
| #include <iostream> #include <functional> void function() { std::cout << "function()" << std::endl; } void functionWithParams(int a, int b) { std::cout << "function(" << a << ", " << b << ")" << std::endl; } struct S { void method() { std::cout << "method" << std::endl; } } void call(std::tr1::function<void()> func) { func(); } int main() { call(function); call(std::tr1::bind(functionWithParams, 1, 2)); S s; call(std::tr1::bind(&S::method, &s)); } |
[ Voor 14% gewijzigd door .oisyn op 13-12-2008 23:48 ]
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Het was of een lange lijst of een korte uitlegArjan schreef op zaterdag 13 december 2008 @ 23:23:
[...]
specifieker dan dat kan ik niet worden op basis van de extreem magere informatie
Great! Die zocht ik :D! thxMLM schreef op zaterdag 13 december 2008 @ 23:26:
functie pointer?
C++:
1..
dit werkt alleen voor "gewone" functies, niet voor members van een class (tenzij static)
-- All science is either physics or stamp collecting
In geval van member functions zou ik zeker iets als boost gebruiken. Persoonlijk ben ik wel een fan van http://www.codeproject.com/KB/cpp/FastDelegate.aspx Zeker ook een interessant artikel voor mensen die al wat langer met C++ werken. Sneller dan boost, maar mist wel een paar features (zoals argument binding, wat .oisyn hierboven demonstreert).oisyn schreef op zaterdag 13 december 2008 @ 23:47:
Gebruik std::tr1::function (of boost::function). Kun je ook pointers naar member functions maken en parameters binden.
C++:
1...
Geen probleem
[ Voor 50% gewijzigd door MLM op 14-12-2008 09:53 ]
-niks-
Pagina: 1