J'ai le code suivant:Conversion de temps à courte erreur
int main()
{
short s(0);
long l(10);
s += static_cast<short>(l);
}
Je compile cela avec g ++ et je reçois l'erreur suivante:
..\src\main.cpp:6:7: warning: conversion to 'short int' from 'int' may alter its value [-Wconversion]
je n'ai absolument aucune idée pourquoi cette se passe, car je pensais que "static_cast" permettait d'éviter ce roi des avertissements.
Merci pour toute aide fournie.
Quel compilateur et quelle version utilisez-vous? [Je ne peux pas reproduire] (http://coliru.stacked-crooked.com/a/92d6d2ae09aadced) – NathanOliver
@NathanOliver ajoute '-Wconversion' et déclenche l'avertissement. – Quentin
Change 's + = static_cast (l);' '' '' s = s + s; 'et vous obtenez toujours l'avertissement. Suggère moi l'élargissement automatique de l'opérateur 'built +' Update: Fount it _ "... les opérateurs arithmétiques n'acceptent pas les types plus petits que int comme arguments, ..." _ source: http://en.cppreference.com/w/ cpp/language/implicit_conversion –