In a boolean variable, there are two fundamental ways to examine: as it is, or !(as it is).
Using the same memory location to access those two base / fundamental extents of its very nature, while new in concept to C/C++ hackers, is not new in any degree of concept. Five year olds use this in speech everyday. The only thing I propose is to give boolean variables their full roundness of use in the C and C++ languages. As they are today, half of their abilities are natively exposed to the developer, the other half are suppressed and hidden behind reverse logic, yielding more icky code than need be. This is my last comment on the post. It's just that I just believe that anything worth doing is worth doing rightly, and completely. Not having native inverse bool support seems incomplete to me. Best regards, Rick C. Hodgin -------- Original Message -------- From: James Dennett <james.denn...@gmail.com> Sent: Thu, Jun 28, 2012 06:24 PM To: Rick C. Hodgin <foxmuldrs...@yahoo.com> CC: Jonathan Wakely <jwakely....@gmail.com>; gcc <gcc@gcc.gnu.org> Subject: Re: Add corollary extension >On Thu, Jun 28, 2012 at 3:08 PM, Rick C. Hodgin <foxmuldrs...@yahoo.com> wrote: >> How would you handle: >> >> isSystemClosed = true; > >A good clean error message is ideal, and should be easy. (A proxy >object such as inv_bool can do this easily enough, but it's still >going to hurt readability.) > >> You're getting into nasty looking/non-obvious code to use language-existing >> features for an ability that 1) is fundamental to software and 2) should >> have native support without kludges. > >No, the ability to have two different variables with different >semantics but shared backing store is not fundamental, it's rather a >violation of the law of least surprise. > >(I'm not buying that lambdas are "nasty looking" or "non-obvious" for >C++ users. They're a fundamental part of the language.) > >I understand that you really like your notation, and think that it's a >clear win. I don't think you'll have luck persuading compiler writers >or language committees, but maybe you'll prove me wrong. > >-- James