Я делаю проект среднего размера (игровой движок), и однажды я решил, что было бы полезно включить все предупреждения (/Wall
). Потом я увидел огромное количество совершенно бесполезных предупреждений, как:Должен ли я даже заботиться о предупреждениях уровня 4?
Warning C4820 '<unnamed-tag>': '3' bytes padding added after data member <unnamed-tag>::Data' DirectX11 Engine c:\program files (x86)\windows kits\8.1\include\um\winnt.h 14179
Тогда я решил использовать /W4
. Там все еще много бесполезных предупреждений, хотя некоторые из них действительно могут помочь мне отслеживать ошибки. Некоторые примеры:
Warning C4359 'btContactConstraint': Alignment specifier is less than actual alignment (128), and will be ignored. BulletDynamics c:\bullet3-2.83.5\src\bulletdynamics\constraintsolver\btContactConstraint.h 25
Warning C4100 'FirstObject': unreferenced formal parameter DirectX11 Engine b:\game engine\directx11 engine\directx11 engine\character.cpp 240
Почему кто-то должен заботиться о 4-го уровня wanings? Я думаю, что предупреждения уровня 4 следует игнорировать, потому что я потратил бы больше времени на их проверку, чем на отслеживание ошибок. Итак, /W3
идеально подходит для меня.
EDIT: Конечно, в конце проекта я бы использовал /W4
и посмотрел, какие предупреждения могут означать что-то полезное.
Я когда-то видел, что кто-то поддерживает список предупреждений, которые вы должны игнорировать в MSVC, но я предполагаю, что это требует постоянного обслуживания, чтобы идти в ногу с новыми версиями ... –
Вы внесли свою серьезную причину в свой вопрос: _ " основанные на марке Многие хорошие вопросы порождают определенное мнение на основе экспертного опыта, но ответы на этот вопрос будут, как правило, почти полностью основаны на мнениях, а не на фактах, ссылках или конкретном опыте ». _ –
@ πάνταῥεῖ Изменено , Так лучше? – LHLaurini