
From: "Ovanes Markarian"
Now I have an instance of struct C and would like to know if x is a valid pointer. this code is really ugly:
if(c.b_) if(c.b_.a_) if(c.b_.a_.x) //do smth ...
The intention would be to write everything in one if-statement. It is not possible to implement a bool or ! operator in these structures, since these are not the only fields and these operators would not know which field should be checked...
How about just: if(c.b_ && c.b_.a_ && c.b_.a_.x) //do smth ... Is that cheating? You can do it all in one 'if' statement this way. I suppose you could write a macro to do something like this: #define CHECK(x,y,z,w) (x.y && x.y.z && x.y.z.w) and then use it like this: if(CHECK(c, b_, a_, x)) //do smth ... And maybe you could write the macro in such a way as to take arbitrary lists of arguments. But that's the best I can come up with. - James Jones Administrative Data Mgmt. Webmaster 375 Raritan Center Pkwy, Suite A Data Architect Edison, NJ 08837