Предупреждение информирует о наличии явного приведения 32-битного целочисленного типа к memsize типу, что может маскировать одну из следующих ошибок: V101, V102, V104, V105, V106, V108, V109. Вы можете обратиться к приведенному списку предупреждений, чтобы выявить причину появления диагностирующего сообщения V204.
Ранее предупреждение V201 распространялось и на приведение 32-битных целочисленных типов к указателю. Такие приведения весьма опасны. Поэтому они были выделены в отдельное диагностическое правило V204.
Учтите, что, скорее всего, большинство предупреждений этого типа будет выдано на корректный код. Приведем несколько примеров корректного и некорректного кода, на который будет выдано данное предупреждение.
Примеры некорректного кода.
int i; ptrdiff_t n; ... for (i = 0; (ptrdiff_t)(i) != n; ++i) { //V201 ... } unsigned width, height, depth; ... size_t arraySize = size_t(width * height * depth); //V201
Примеры корректного кода.
const size_t seconds = static_cast<size_t>(60 * 60); //V201 unsigned *array; ... size_t sum = 0; for (size_t i = 0; i != n; i++) { sum += static_cast<size_t>(array[i] / 4); //V201 } unsigned width, height, depth; ... size_t arraySize = size_t(width) * size_t(height) * size_t(depth); //V201