С параметром компилятора / WX Visual C ++ не должен собирать мою программу, но это - PullRequest
0 голосов
/ 07 февраля 2020

Установив параметр компилятора / WX, этот код не должен компилироваться, но он выполняет:

#include <iostream>

int main()
{
//#pragma warning( disable : 4005 ) // macro redefinition

#define TEST_MACRO 123

    std::cout << TEST_MACRO;

#define TEST_MACRO 456

    std::cout << TEST_MACRO;
}

Это вывод Visual C ++:

1>------ Rebuild All started: Project: TestWarningDisable, Configuration: Debug Win32 ------
1>TestWarningDisable.cpp
1>E:\test\TestWarningDisable\TestWarningDisable.cpp(14,1): warning C4005: 'TEST_MACRO': macro redefinition
1>E:\test\TestWarningDisable\TestWarningDisable.cpp(10): message : see previous definition of 'TEST_MACRO'
1>TestWarningDisable.vcxproj -> E:\test\TestWarningDisable\Debug\TestWarningDisable.exe
1>Done building project "TestWarningDisable.vcxproj".
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========

Почему не предупреждение C4005 преобразован в ошибку?

1 Ответ

0 голосов
/ 07 февраля 2020

Вот проблема: я установил параметр / WX для сборки x64, но затем сделал сборку Win32.

Это был быстрый тестовый проект, и странно, что Visual Studio создала простой пустой проект Win32, и когда я изменил свойства проекта, диалоговое окно было установлено на x64 по умолчанию ...

...