You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Compilateur d'optimisation Microsoft (R) C/C++ version 19.30.30706 pour x64
Copyright (C) Microsoft Corporation. Tous droits réservés.
main.cpp
main.cpp(5): error C4002: trop d'arguments pour l'appel de macro de type fonction 'SUM'
(this is the expected behavior)
but if the file use boost unit_test.hpp:
#define BOOST_TEST_MODULE MyTest
#include <boost/test/unit_test.hpp>
#define SUM(a, b) ((a)+(b))
int main(void)
{
return SUM(1,2,3); // note the extra arg 3
}
The extra argument is now accepted by producing only a warning:
Compilateur d'optimisation Microsoft (R) C/C++ version 19.30.30706 pour x64
Copyright (C) Microsoft Corporation. Tous droits réservés.
main.cpp
main.cpp(8): warning C4002: trop d'arguments pour l'appel de macro de type fonction 'SUM'
... <try to link>
The text was updated successfully, but these errors were encountered:
Hello,
We would like to compile code with msvc and warning C4002 as error. To do so, we set the compiler flag /we4002.
When we include some boost header, the compiler error 4002 is set back to warning due to this line or this line.
Example:
With a file main.cpp:
compiled with
C:\tmp>"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.30.30705\bin\Hostx64\x64\cl.exe" /we4002 /I. /EHsc main.cpp
it produce error:
(this is the expected behavior)
but if the file use boost unit_test.hpp:
compiled with the same command line
C:\tmp>"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.30.30705\bin\Hostx64\x64\cl.exe" /we4002 /I. /EHsc main.cpp
The extra argument is now accepted by producing only a warning:
The text was updated successfully, but these errors were encountered: