[cfe-dev] ciso646

degski via cfe-dev cfe-dev at lists.llvm.org
Tue Aug 21 23:27:57 PDT 2018


As the above header will be removed in C++20 and at the same time a like
some bits of it (for clarity), I defined not/or/and myself. This triggers
the following warnings:

./uniform_int_distribution_fast.hpp(99): warning : C++ operator 'not' (aka
'!') used as a macro name [-Wmicrosoft-cpp-macro]
./uniform_int_distribution_fast.hpp(100): warning : C++ operator 'and' (aka
'&&') used as a macro name [-Wmicrosoft-cpp-macro]
./uniform_int_distribution_fast.hpp(101): warning : C++ operator 'or' (aka
'||') used as a macro name [-Wmicrosoft-cpp-macro]

I'm confused now, not including ciso646 and removing those defines compiles
my code with clang-cl-8.0, also with -std=c++17 (and -std=c++2a), while the
same code does not compile with vc-15.8.1 (-std:latest), un-surprisingly.
At the same time the warning talks about "operator not" as if it became a
language keyword (in C++20). Unfortunately the books on C++20 are thin on
the ground and cppreference.com mixes the old with the new and is not clear
at all about it, except that ciso646 has gone the way of the dodo.

Could someone please shed some light.

degski
-- 
*“If something cannot go on forever, it will stop" - Herbert Stein*
*“No, it isn’t truth. Truth isn’t truth" - Rudolph W. L. Giuliani*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20180822/12ef1696/attachment.html>


More information about the cfe-dev mailing list