MSVC doesn't support "not"?!

Just checked the regression testing pages. Most of the testing stations that reported fails for Boost.Rational have switched to pass since I've uploaded updates. Besides the stations that haven't run new tests, and the "teeks" team that run Clang tests although it seemingly isn't actually installed, the newly-run MSVC stations report fails. The old errors are gone, but the new error is: ..\libs\rational\test\rational_test.cpp(1012) : error C2065: 'not' : undeclared identifier ..\libs\rational\test\rational_test.cpp(1012) : error C2146: syntax error : missing ')' before identifier 'dummy' ..\libs\rational\test\rational_test.cpp(1012) : error C2059: syntax error : ')' This happens with MSVC 10.0 and 11.0. Hasn't "not" been an alternate symbol for "!" since C++98? I'll change it to "!", but that doesn't excuse not fixing it for 15 years! What happened? (I think some of the MSVC authors lurk here.) Daryle W.

..\libs\rational\test\rational_test.cpp(1012) : error C2065: 'not' : undeclared identifier ..\libs\rational\test\rational_test.cpp(1012) : error C2146: syntax error : missing ')' before identifier 'dummy' ..\libs\rational\test\rational_test.cpp(1012) : error C2059: syntax error : ')'
This happens with MSVC 10.0 and 11.0. Hasn't "not" been an alternate symbol for "!" since C++98? I'll change it to "!", but that doesn't excuse not fixing it for 15 years! What happened? (I think some of the MSVC authors lurk here.)
#include <ciso646>

[Daryle Walker]
This happens with MSVC 10.0 and 11.0. Hasn't "not" been an alternate symbol for "!" since C++98? I'll change it to "!", but that doesn't excuse not fixing it for 15 years! What happened? (I think some of the MSVC authors lurk here.)
[Tim Blechmann]
#include <ciso646>
Note that VC's

Daryle Walker skrev 2013-08-22 22:19:
Just checked the regression testing pages. Most of the testing stations that reported fails for Boost.Rational have switched to pass since I've uploaded updates. Besides the stations that haven't run new tests, and the "teeks" team that run Clang tests although it seemingly isn't actually installed, the newly-run MSVC stations report fails. The old errors are gone, but the new error is:
..\libs\rational\test\rational_test.cpp(1012) : error C2065: 'not' : undeclared identifier ..\libs\rational\test\rational_test.cpp(1012) : error C2146: syntax error : missing ')' before identifier 'dummy' ..\libs\rational\test\rational_test.cpp(1012) : error C2059: syntax error : ')'
This happens with MSVC 10.0 and 11.0. Hasn't "not" been an alternate symbol for "!" since C++98? I'll change it to "!", but that doesn't excuse not fixing it for 15 years! What happened? (I think some of the MSVC authors lurk here.)
For reasons lost in history, it is considered an MS extension NOT to recognize these symbols. If you select "Disable language extensions" it will work (but not much else, like compiling Windows.h). Bo Persson

[Bo Persson]
For reasons lost in history, it is considered an MS extension NOT to recognize these symbols. If you select "Disable language extensions" it will work (but not much else, like compiling Windows.h).
Note that /Za will cause <atomic> to explode due to inline x86 assembler using "and", etc. (which I am very eager to eradicate as soon as I can get more intrinsics from the compiler back-end). However, <atomic> defends itself from iso646.h's macros.
/Za used to incorrectly reject vector

On 8/22/2013 4:19 PM, Daryle Walker wrote:
Just checked the regression testing pages. Most of the testing stations that reported fails for Boost.Rational have switched to pass since I've uploaded updates. Besides the stations that haven't run new tests, and the "teeks" team that run Clang tests although it seemingly isn't actually installed, the newly-run MSVC stations report fails. The old errors are gone, but the new error is:
..\libs\rational\test\rational_test.cpp(1012) : error C2065: 'not' : undeclared identifier ..\libs\rational\test\rational_test.cpp(1012) : error C2146: syntax error : missing ')' before identifier 'dummy' ..\libs\rational\test\rational_test.cpp(1012) : error C2059: syntax error : ')'
This happens with MSVC 10.0 and 11.0. Hasn't "not" been an alternate symbol for "!" since C++98? I'll change it to "!", but that doesn't excuse not fixing it for 15 years! What happened? (I think some of the MSVC authors lurk here.)
I am curious as to the technical reason to use 'not' rather than '!'.

From: eldiener@tropicsoft.com Date: Thu, 22 Aug 2013 17:48:24 -0400
On 8/22/2013 4:19 PM, Daryle Walker wrote:
This happens with MSVC 10.0 and 11.0. Hasn't "not" been an alternate symbol for "!" since C++98? I'll change it to "!", but that doesn't excuse not fixing it for 15 years! What happened? (I think some of the MSVC authors lurk here.)
I am curious as to the technical reason to use 'not' rather than '!'.
"not " sticks out more while perusing code than a pixel-wide symbol adjacent to an identifier. Daryle W.

On 22/08/13 23:48, Edward Diener wrote:
I am curious as to the technical reason to use 'not' rather than '!'.
Same reason it was added to the C++ standard. Some people thought it useful to be able to use English words rather than obscure symbols for this. Also it might be practical on keyboard layouts that do not have easy access to those characters. Personally, I don't think it's good style to use them.
participants (6)
-
Bo Persson
-
Daryle Walker
-
Edward Diener
-
Mathias Gaunard
-
Stephan T. Lavavej
-
Tim Blechmann