On Monday 14 May 2007, Jan Rakelmann wrote:
und wenn es jetzt noch ein C/C++-Gegenstück zu Fortran95's ASSOCIATED(POINTER [,TARGET]) gibt könnte ich mich auch noch mit dem Gespann anfreunden. ,-)
#define ASSOCIATED(ptr) (ptr) != 0 #define ASSOCIATED(ptr,target) (ptr) == &(target)
Hab's nicht getestet, aber sollte so funktionieren:
int myint=1; int *myptr=&myint; if(ASSOCIATED(myptr)){ //do something }
if(ASSOCIATED(myptr,myint)){ //hooray! myptr points to myint! }
Ich verstehe zwar nicht was an den Originalausdrücken so kompliziert ist, dass man sie unbedingt in ASSOCIATED kapseln muss, aber ok.
So ist es richtiges C++:
if(myptr != 0) {...} if(myptr == &myint) {...}
der erste geht sogar noch kürzer:
if(myptr) {...}
Konrad