Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++
Войти
Регистрация
Восстановить пароль
 
hoggy
Заблокирован
Эксперт С++
#1

[c++, msvc] #pragma suppress warning

04.05.2015, 22:39. Просмотров 492. Ответов 1
Метки нет (Все метки)

Всем привет.

Вижал студия 2013.

Рассмотрим код:

http://rextester.com/FCO39975

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
//Title of this code
//Compiler Version 18.00.21005.1 for x86
 
#include <iostream>
 
int main()
{
    std::cout << "Hello, world!\n";
    
    #pragma warning(push)
    #pragma warning(disable: 4101)
    
    int val_1;
    int val_2;
    int val_3;
        
    std::cout<<"--------------\n";
    
    #pragma warning(pop)
    
    //source_file.cpp(15) : warning C4101: 'val_3' : unreferenced local variable
    //source_file.cpp(13) : warning C4101: 'val_1' : unreferenced local variable
    //source_file.cpp(14) : warning C4101: 'val_2' : unreferenced local variable
    
    // если закомментировать #pragma warning(pop), 
    // предупреждение пропадет
    
}
Вопрос: почему, предупреждение не подавляется,
если в коде фигурирует #pragma warning(pop) ?

Добавлено через 2 минуты
вот так все прекрасно подавилось:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
#pragma warning(push)
#pragma warning(disable: 4101)
int main()
{
    std::cout << "Hello, world!\n";
    
    
    
    int val_1;
    int val_2;
    int val_3;
        
    std::cout<<"--------------\n";
}
#pragma warning(pop)
видимо, что-то связанное с областью действия прагм...

Добавлено через 8 минут
не подавилось...


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
int main()
{
    std::cout << "Hello, world!\n";
    
 
    #pragma warning(push)
    #pragma warning(disable: 4101)
    {
        int val_1;
        int val_2;
        int val_3;
    }
        
    std::cout<<"--------------\n";
    #pragma warning(pop)
    
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.05.2015, 22:39
Ответы с готовыми решениями:

Установка MSVC 97 на win 8.1 x64
Добрый пытаюсь установить msvc 97 на восьмерку - не получается, при окошке...

Код, который ломает MSVC компилятор (просто делюсь)
Привет! Иногда приходится кое-что делать под виндой и сегодня случайно...

[c++][bug][template][cross - platform] workaround for msvc`s compiler
добрый день. следующий код успешно собирается gcc ...

Различия использования регулярных выражений и генераторов парсеров в GCC и MSVC
Я слышал что G++ и MSVC используют lex и bison для построения дерева токенов и...

Что делает директива #pragma
а именно что выполняют эти строки? можно по-простому? #pragma...

1
zenden2k
43 / 28 / 12
Регистрация: 21.04.2015
Сообщений: 82
05.05.2015, 16:14 #2
http://stackoverflow.com/a/29530960/4569791

Some warnings are 'function scope' and cannot be suppressed by using #pragma warning(suppress: 4101). They also, as you have noted, cannot be disabled by just doing it around the specific line. You must disable this warning for the whole function:

C++
1
2
3
4
5
6
#pragma warning(push)
#pragma warning(disable: 4101)
int main() {
    int i;
}
#pragma warning(pop)
Note also that for warnings that are specific to a line rather than a scope, the use of #pragma warning(suppress: xxx) is specific to the next actual line in the file.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.05.2015, 16:14

Что такое #pragma hrdstop
не могу понят что такое #pragma hrdstop я новичок еще(

#pragma команды для ХЕ(ХЕ2)
Здрасте всем. :) Я знаю что у всех компляторов команды #pragma...

Pragma link - что за зверь и для чего нужно?
Обычно, когда добавляешь к проекту сторонний компонент, то в тексте юнита...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru