C ++ 11: «сужение преобразования внутри {}» с модулем

Я пытаюсь скомпилировать следующий код сgcc а такжеC++11 включено:

unsigned int id = 100;
unsigned char array[] = { id % 3, id % 5 };

Я получаю эти предупреждения:

сужающее преобразование ‘(id% 3u)’ из «unsigned int» в «unsigned char» внутри {} [-Warroing]

посмотреть демо онлайн

Есть ли способ помочь компилятору выяснить, что результатid% 3 вписывается вбез знака?

Ответы на вопрос(4)

Ваш ответ на вопрос