<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Aug 22, 2018 at 9:47 AM, Tim Song via cfe-dev <span dir="ltr"><<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">and/or/not etc. have always been alternative tokens in standard C++<br>
all the way back to C++98 and not macros. MSVC is nonconforming in<br>
this regard.<br>
<br>
On Wed, Aug 22, 2018 at 1:27 AM, degski via cfe-dev<br>
<<a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a>> wrote:<br>
> As the above header will be removed in C++20 and at the same time a like<br>
> some bits of it (for clarity), I defined not/or/and myself. This triggers<br>
> the following warnings:<br>
><br>
> ./uniform_int_distribution_<wbr>fast.hpp(99): warning : C++ operator 'not' (aka<br>
> '!') used as a macro name [-Wmicrosoft-cpp-macro]<br>
> ./uniform_int_distribution_<wbr>fast.hpp(100): warning : C++ operator 'and' (aka<br>
> '&&') used as a macro name [-Wmicrosoft-cpp-macro]<br>
> ./uniform_int_distribution_<wbr>fast.hpp(101): warning : C++ operator 'or' (aka<br>
> '||') used as a macro name [-Wmicrosoft-cpp-macro]<br>
><br>
> I'm confused now, not including ciso646 and removing those defines compiles<br>
> my code with clang-cl-8.0, also with -std=c++17 (and -std=c++2a), while the<br>
> same code does not compile with vc-15.8.1 (-std:latest), un-surprisingly. At<br>
> the same time the warning talks about "operator not" as if it became a<br>
> language keyword (in C++20). Unfortunately the books on C++20 are thin on<br>
> the ground and <a href="http://cppreference.com" rel="noreferrer" target="_blank">cppreference.com</a> mixes the old with the new and is not clear<br>
> at all about it, except that ciso646 has gone the way of the dodo.<br>
><br>
> Could someone please shed some light.<br>
><br>
> degski<br>
> --<br>
> “If something cannot go on forever, it will stop" - Herbert Stein<br>
> “No, it isn’t truth. Truth isn’t truth" - Rudolph W. L. Giuliani<br>
><br>
> ______________________________<wbr>_________________<br>
> cfe-dev mailing list<br>
> <a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a><br>
> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/cfe-dev</a><br>
><br>
______________________________<wbr>_________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/cfe-dev</a><br>
</blockquote></div></div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">and/or/not definition within a source is not also permitted in the following compiler <br></div><div class="gmail_extra">with similar messages listed above :<br></div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">[s@localhost ~]$ g++ --version<br>g++ (GCC) 8.1.1 20180712 (Red Hat 8.1.1-5)<br>Copyright (C) 2018 Free Software Foundation, Inc.<br><br></div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">Mehmet Erol Sanliturk<br></div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div></div>