Avviso del compilatore (livello 1) C4293

'operator': numero di turni negativo o troppo grande, comportamento non definito

Se un conteggio dei turni è negativo o troppo grande, il comportamento dell'immagine risultante non è definito.

Osservazioni:

Per risolvere questo problema, è possibile usare un cast sul primo operando per espanderlo fino alle dimensioni del tipo di risultato.

Esempio

L'esempio seguente genera l'errore C4293 e mostra i modi per risolverlo:

// 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;
}