Отключить предупреждение в определенном месте компилятора IntelC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Отключить предупреждение в определенном месте компилятора Intel

Сообщение Anonymous »

У меня есть математический вектор, размеры которого я определяю с помощью параметра шаблона int N. Проблема в том, что я добавляю ко многим параметрам в конструкторе до N=9, g++ с этим согласен, но компилятор Intel жалуется на это с предупреждением

предупреждение №175: нижний индекс выходит за пределы диапазона

Да, нижний индекс выходит за пределы диапазона, как кажется, но нет, это не вызовет проблем, потому что написано так это:

Код: Выделить всё

template 
Vector::Vector(T val0, T val1, T val2, T val3, T val4, T val5, T val6, T val7, T val8, T val9)
{
for(int i = 0; i < N; i++)
{
_values[i] = T();
}
_values[0] = val0;
if(N > 1)
_values[1] = val1;
if(N > 2)
_values[2] = val2;
if(N > 3)
_values[3] = val3;
if(N > 4)
_values[4] = val4;
if(N > 5)
_values[5] = val5;
if(N > 6)
_values[6] = val6;
if(N > 7)
_values[7] = val7;
if(N > 8)
_values[8] = val8;
if(N > 9)
_values[9] = val9;
}
где N — размерность, как я уже упоминал, а T — тип данных. Таким образом, компилятор Intel недостаточно умен, чтобы понять, что это не вызовет никаких проблем, поскольку я не получаю доступа к элементу, пока индекс не действителен.

Вопрос: как я могу сообщить компилятору с помощью чего-то вроде макросов/команд предварительного компилятора, что он не должен выдавать предупреждение № 175 для этих строк? Обратите внимание, что полное отключение предупреждения № 175 было бы неразумно, хотя я все равно мог бы допустить реальную ошибку где-нибудь еще; Я просто хочу отключить его для этой области кода.

Спасибо за любые усилия.

Подробнее здесь: https://stackoverflow.com/questions/185 ... l-compiler
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»