Lisant le livre passionnant de Vandevoord et Josuttis :
C++ Templates - The complete guide
je suis tombé sur la ligne de code suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
template<typename C> static One test(int C::*);
(chapitre 15, section 15.2.2, page 206) qui est bien formée si C est une classe.

La syntaxe de l'argument int C::* de test m'a laissé pantois !

Le fait est que j'ai pu compiler un petit programme comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
struct A {
 
	  int b;
};
 
int main() 
{
	int A::* truc;
 
	truc = &A::b;
 
}
mais je n'ai pas su faire quoi que ce soit de truc
Que peut-on faire avec ça ? A quoi peut servir ce genre de syntaxe ??