J'essayais de déterminer la plus grande valeur possible dans un champ de bits, ce que j'ai fait est :
using namespace std;
struct A{
unsigned int a:1;
unsigned int b:3;
};
int main()
{
A aa;
aa.b = ~0U;
return 0;
}
MSVC est correct mais GCC 4.9.2 m'a donné un avertissement :
warning: large integer implicitly truncated to unsigned type [-Woverflow]
Je me demande comment je peux m'en débarrasser (en supposant que je ne connaisse pas la largeur de bit du champ, et que je veuille savoir quelle est la plus grande valeur possible dans ce champ).