Lisant le livre passionnant de Vandevoord et Josuttis :
C++ Templates - The complete guide
je suis tombé sur la ligne de code suivante :
(chapitre 15, section 15.2.2, page 206) qui est bien formée si C est une classe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part template<typename C> static One test(int C::*);
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 :
mais je n'ai pas su faire quoi que ce soit de truc
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; }
Que peut-on faire avec ça ? A quoi peut servir ce genre de syntaxe ??
Partager