• Страница 1 из 1
  • 1
Модератор форума: Dimitro  
Ошибка при конпиляции
vanz7796
Капрал
Помогите исправить ошибку

Код
E:\ishodd\src\scripts\Custom\npc_titles.cpp(46): warning C4146: применение унарного минуса к типу без знака; результат оставлен без знака
16>E:\ishodd\src\scripts\Custom\npc_titles.cpp(48): warning C4146: применение унарного минуса к типу без знака; результат оставлен без знака
16>E:\ishodd\src\scripts\Custom\npc_titles.cpp(49): warning C4146: применение унарного минуса к типу без знака; результат оставлен без знака
16>E:\ishodd\src\scripts\Custom\npc_titles.cpp(70): warning C4146: применение унарного минуса к типу без знака; результат оставлен без знака
16>E:\ishodd\src\scripts\Custom\npc_titles.cpp(72): warning C4146: применение унарного минуса к типу без знака; результат оставлен без знака
16>E:\ishodd\src\scripts\Custom\npc_titles.cpp(73): warning C4146: применение унарного минуса к типу без знака; результат оставлен без знака
16>E:\ishodd\src\scripts\Custom\npc_titles.cpp(94): warning C4146: применение унарного минуса к типу без знака; результат оставлен без знака
16>E:\ishodd\src\scripts\Custom\npc_titles.cpp(96): warning C4146: применение унарного минуса к типу без знака; результат оставлен без знака
16>E:\ishodd\src\scripts\Custom\npc_titles.cpp(97): warning C4146: применение унарного минуса к типу без знака; результат оставлен без знака


Сервер WoW 2.4.3 ZetSmart(OregonCore) - отличная работоспособность и множество интересных патчей.
http://wowjp.net/forum/123-299941-1
Продажа исходников OregonCore.
https://wowjp.net/forum/187-310795-1
Сообщение # 1 написано 09.01.2016 в 16:14
r0m1ntik
Центурион
Точку запитую забыл в сase 1000:

посмотри как в других

Хотя там  не только в case 1000
Сообщение # 2 отредактировано r0m1ntik - Суббота, 09.01.2016, 17:13
Incorrect
Капрал
Ох уж эти вовжоперские конпеляторы.))

getConfig возвращает значение беззнакового типа (unsigned), скорее всего uint32. Применение унарного минуса в данном случае может привести к неприятным неожиданностям, поэтому компилятор игнорирует это действие и выводит предупреждение.

Перед применением унарного минуса приведите значение к знаковому типу. Замените "-" на "-(int32)" в данном случае.
Сообщение # 3 написано 09.01.2016 в 17:22
p620
Маршал
Цитата vanz7796 ()
Помогите исправить ошибку
Стоит отметить, что у Вас при умножении не проверяется переполнение типа. И хотя беззнаковые типы не переполняются так, как это делают знаковые (с UB), результат вычисления std::numeric_limits<T>::max() * val, где val > 1 и имеет тип T, а T - целочисленный беззнаковый тип, может привести к неожиданным последствиям.
А с учетом последующего приведения типа с возможной потерей данных (unsigned -> signed), может и вовсе мясо получиться. Однако, это возможно только если в конфиге будут указаны некорректные данные.
Сообщение # 4 отредактировано p620 - Суббота, 09.01.2016, 19:35
  • Страница 1 из 1
  • 1
Поиск: