Ich möchte ein C/C++ - Makro für null sicheren Zeiger Zugriff schreiben. Im Moment habe ich diese, die gut funktioniert:C/C++ - Makro für null sicheren Zeiger Zugriff
#define NULL_SAFE(p, e) if (p) p->e
NULL_SAFE(myPtr, myMethod(myArg));
Aber was ich wirklich will, ist, so etwas haben:
NULL_SAFE(
myPtr, myMethod(myArg),
myOtherPtr, myOtherMethod(myOtherArg),
yetAnotherMyPtr, plsStopMethod(grArg),
...
);
, die erweitern würde:
if (myPtr) myPtr->myMethod(myArg);
if (myOtherPtr) myOtherPtr->myOtherMethod(myOtherArg);
if (yetAnotherMyPtr) yetAnotherMyPtr->plsStopMethod(grArg);
ich denken kann, von einer ganzen Reihe von diesen möchte ich vielleicht verwenden, aber sie arbeiten alle nach dem gleichen Konzept wie dieses.
Ist das möglich? Gibt es das schon irgendwo? Irgendwelche Vorschläge? Danke für Ihre Hilfe!
Wahrscheinlich besser, eine Referenz zu verwenden, so dass nichts von dieser verrückten Idee an erster Stelle erforderlich ist – paulm
Werfen Sie einen Blick auf diese: http://saadahmad.ca/cc-preprocessor-metaprogramming-basic-pattern-matching-macros- und-conditionals/ – lorro
Verwenden Sie C oder C++? Wenn Sie C++ verwenden, können Sie Smartpointer verwenden. – NathanOliver