bonjour,

qu'est-ce donc que ce mot-clé __restrict? A quoi sert-il?

Je ne suis pas parvenu à trouver d'autre doc que celle de la msdn: ici. Mais ce n'est pas clair ce qu'ils disent. Notemment, j'ai testé le code suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
int Dum( int * __restrict a, int *  __restrict b)
{
	return a[0]*b[0];
}
 
int main()
{
        int * a = new int[2];
        Dum(a,a);
        return 0;
}
et ce code compile et fonctionne aussi bien avec vs8 sous Windows qu'avec gcc 4.1 sous Linux. Je croyais que __restrict voulais dire que les 2 paramètres devaient être distincts (adresse différente), mais en fait non.

Quelqu'un a des infos à ce sujet?