Bonjour � tous,
Je suis en train de faire un test simple de capture d'une fonction par une autre.
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
template<typename ResultType, typename ParameterType1>
void CaptureMethod(ResultType(*func)(ParameterType1)) {
}
 
template<typename ResultType, typename ParameterType1, typename ParameterType2>
void CaptureMethod(ResultType(*func)(ParameterType1, ParameterType2)) {
}
 
template<typename ResultType, typename ParameterType1, typename ParameterType2, typename ParameterType3>
void CaptureMethod(ResultType(*func)(ParameterType1, ParameterType2, ParameterType3)) {
}
 
int f1(int) { return 0;  }
int f2(int, int) { return 0; }
int f3(int, int, int) { return 0; }
 
int main()
{
	CaptureMethod(f1);
	CaptureMethod(f2);
	CaptureMethod(f3);
	return 0;
}
�a c'est la version � l'ancienne, le truc c'est qu'il faut que je cr�er autant de surcharge que le nombre max de param�tre de la m�thode que je veux capturer. Donc je me suis dit autant passer par les template variadic:
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
template<typename ResultType, typename... ParametersTypes>
void CaptureMethod(ResultType(*func)(ParametersTypes...)) {
}
 
 
int f1(int) { return 0;  }
int f2(int, int) { return 0; }
int f3(int, int, int) { return 0; }
int f10(int, int, int, int, int, int, int, int, int, int) { return 0; }
 
int main()
{
	CaptureMethod(f1);
	CaptureMethod(f2);
	CaptureMethod(f3);
	CaptureMethod(f10);
	return 0;
}
Maintenant j'aimerais pouvoir capturer des fonctions qui ont un nombre de param�tres variables:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
template<typename ResultType, typename... ParametersTypes>
void CaptureMethod(ResultType(*func)(ParametersTypes...)) {
}
 
 
int fVariable(...) { return 0;  }
 
int main()
{
	CaptureMethod(fVariable);
	return 0;
}
Mais l� �a ne compile pas (je suis sous Visual 2017). Est-ce possible de capturer une fonction � nombre de param�tres variables? J'avoue que l� je n'ai pas trop d'id�es.