取消引用无效指针或智能指针时代码崩溃。添加了一个断言来帮助查找问题。例如,
Type* p = NULL; // Always initilize to be null.
assert(p); // Add before dereferencing to help to find the problem.
p->f(); // Crashes if p is invalid.
我的问题是如何在取消引用指针时自动添加断言。例如,
#define PTR_RUN(p, f) assert(p); p->f;
这可行,但可读性不好,并且可能由于粗心使用宏而存在一些隐藏问题。还有更好的方法吗?谢谢。