J'aimerais faire une map qui me permette sur un objet de ma classe d'appeller une fonction membre via un index.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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

typedef unsigned char* pixel;
typedef void (compressor) (pixel&);
// map COMP => Fonction de compression
typedef map<unsigned int, compressor> compresseursType;

[...]

class COVReaderEngine {

	[...]

	void setCompressor(unsigned int num, compressor comp);
	// pixel _access : accès en mémoire où doivent être écrit les pixels
	void compresseur_000(pixel &_acess);

	[...]

}

COVReaderEngine::COVReaderEngine(const char* s) {

	[...]

	setCompressor(0, compresseur_000);

	[...]

}
Mais je n'y arrive pas.

CF :

f:\program files\avisynth 2.5\avisynth_256_src\avsdll\cov001.cpp(181) : error C3867: &'COVReaderEngine::compresseur_000' : liste d'arguments manquante dans l'appel de fonction ; utilisez 'COVReaderEngine::compresseur_000' pour créer un pointeur vers membre
Comment faire ? (j'espère qu'au pire des cas il existe une alternative plus orientée objet que l'utilisation d'un switch)