Avertissement du compilateur (niveau 1) C4293
'operator' : décalage de nombre négatif ou trop volumineux, comportement non défini
Si un nombre de décalages est négatif ou trop volumineux, le comportement de l’image résultante n’est pas défini.
Notes
Pour résoudre ce problème, vous pouvez utiliser un cast sur le premier opérande pour l’étendre à la taille du type de résultat.
Exemple
L’exemple suivant génère l’erreur C4293 et montre comment le corriger :
// C4293.cpp
// compile with: /c /W1
unsigned __int64 combine (unsigned lo, unsigned hi)
{
return (hi << 32) | lo; // C4293
// In C, try the following line instead:
// return ( (unsigned __int64)hi << 32) | lo;
// In C++, try this line instead:
// return (static_cast<unsigned __int64>(hi) << 32) | lo;
}