Здорова ребятки!
Сегодня разберем что такое
1 |
__pragma(warning( disable : 4867 )) |
это запись которая добавляется в код и она глушит вывод ошибки C4867. __pragma — это не функция а директива препроцессора, __pragma — это ключевое слово специфическое для майкрософтовского компилятора. Введено для того чтобы можно было подставлять директивы препроцессора с помощью макросов. Почитать за это можно тут.
worning — это директива которая включает выборочное изменение расширения функциональности предупреждающих сообщений компилятора. Почитать за нее можно тут.
Реальный пример заглушки warning
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#include <iostream> using std::cout; __pragma(warning( disable : 4172 )) __pragma(warning( disable : 4101 )) int& f() { int x;//C4101 int y(10); return y;//C4172 } int main() { cout <<f()<<"\n"; return 0; } |
#pragma это почти тоже что и __pragme, только это как бы ключевое словов, а #pragma — это сам макрос, приведем идентичные строки с кодом
1 2 3 4 5 6 |
#pragma warning( disable : 4172 ) #pragma warning( disable : 4101 ) //идентичны строкам __pragma(warning( disable : 4172 )) __pragma(warning( disable : 4101 )) |