У меня есть pragma warning (disable : xxx)
в cpp файлах (не заголовках):
теперь, если мы опускаем pragma warning (default : xxx)
в том же файле cpp, это предупреждение остается отключенным во всех cpp файлах в проекте или только в этом cpp файле?
также, если мы компилируем несколько проектов, влияет ли это отключенное предупреждение на все проекты? предполагая, что прагма в файле cpp только не в заголовках.
например, у меня есть:
#ifdef NDEBUG // In release build using CrtDebug functions has no effect!
#define CRT_DBG_REPORT(...) 0
#pragma warning (disable : 6326) // Potential comparison of a constant with another constant
#pragma warning (disable : 26814) // The const variable can be computed at compile time
#pragma warning (disable : 26477) // Use nullptr rather than 0 or NULL
#pragma warning (disable : 4127) // conditional expression is constant
#pragma warning (disable : 4100) // unreferenced formal parameter
#else
#define CRT_DBG_REPORT _CrtDbgReportW
#endif // NDEBUG
Я хотел бы опустить установку обратно на «default», но убедитесь, что она отключает только предупреждения для этого cpp файла.
edit
благодаря предложению раздела комментариев ...
Если мы включим Unity
build, что такое поведение "undefauled" (только отключено) cpp pragmas? Project properties -> Advanced -> Unity.