On Thu, Jun 28, 2012 at 12:39:16PM -0700, Rick Hodgin wrote: > I've thought more about the syntax, and I see this making more sense: > bool isSystemOpen[!isSystemClosed];
You've just declared an array of bool, whose size is the expression !isSystemClosed. As developers have already showed you how to achieve what you want in the existing language, you should define an inv_bool class, then write inv_bool isSystemOpen(isSystemClosed); and use the feature to your heart's content. There's a very high bar to accepting a language extension, because developers need to know, to "draft standard" level of detail, how that feature interacts with existing language features, and you can't change the meaning of valid code. Furthermore, the vast engineering effort isn't worth doing if users can achieve the same thing in the standard language, perhaps with slightly different syntax. The previous proposal was for a "self" keyword. But #define self (*this) and you're done.