#define _STR(x) #x
#define STR(x) _STR(x)
#define DIAGNOSTIC_IGNORE(w) __pragma(warning(disable : w)))
#define DIAGNOSTIC_PUSH(w) __pragma(warning(push))
#define DIAGNOSTIC_POP(w) __pragma(warning(pop))
#define DIAGNOSTIC_MESSAGE(w) __pragma(message(STR(w)))
Нет конечно нет... Не сработает.
Ну там же только передать код варна. Неужели никак это не сделать?
Какой код у варна?
Какой номер у варна в gcc?
Там строки(вместо номеров), ты сам писал ;)
Ну дак значит тебе придётся строки передавать а не номера
В данном случае я говорю про MSVC.
Ну дак в msvc пишешь через __pragma(warning(disable: N))
Так стоп. ВСЕ ПРАГМЫ — COMPILER SPECIFIC - ПО ОПРЕДЕЛЕНИЮ. Всё это говно тебе придётся писать в коде и под каждый компилятор. Т.е. это вообще не вариант
Та вы уже убедили.
_Pragma, для standard-complaint
Максимум можешь добиться такого: Можешь вот так сделать: DISABLE_WARNING(1234, "-Wno-some-warning");
Вот. Поэтому либо пиши код думая, и плюй на варнинги, либо ... а и нет никаого либо. Варнинги либо выключить вообще , либо плевать на них.
Обсуждают сегодня