Bonjour,

Voici un code que j'ai trouvé sur le net pour calculer rapidement la racine carré :
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
inline float CMathFct::squareRoot(float number)
{
	long i;
	float x, y;
	const float f = 1.5F;
 
	x = number * 0.5F;
	y  = number;
	i  = * ( long * ) &y; //warning ici
	i  = 0x5f3759df - ( i >> 1 );
	y  = * ( float * ) &i; //warning ici
	y  = y * ( f - ( x * y * y ) );
	y  = y * ( f - ( x * y * y ) );
	return number * y;
}
Quand je compile ce code avec l'option -O2 de g++, tout se passe bien mais quand je compile avec l'option -O3, j'ai ce warning :
"attention : déréférencement du pointeur type-punned brisera les strictes d'aliases"

Comment faire pour ne plus l'avoir ? Merci