c++ - 如何自动为指针取消引用添加安全措施?

标签 c++ pointers

取消引用无效指针或智能指针时代码会崩溃。添加断言以帮助查找问题。例如,

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;

这有效但可读性不佳,并且可能因粗心使用宏而存在一些隐藏的问题。有什么更好的方法吗?谢谢。

最佳答案

或者是否值得使用某种在某些情况下会抛出异常的智能指针?

关于c++ - 如何自动为指针取消引用添加安全措施?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15043860/

相关文章:

c++ - 获取任何 C++ 可取消引用类型的基础类型

c++ - 是否可以锁定变量以防止在 C++ 中对其进行更改?

c++ - 在 LabVIEW Call Library Function Node 中,我应该将参数的类型设置为指向 C++ 类的指针?

c++ - 在命令行参数中查找出现的字母

c++ - 如何实例化 std::exception_ptr 以进行单元测试

c++ - 我应该采取什么步骤来用普通变量替换指针的出现?

c - 为什么这不适用于 C 中的哈希表(指针)

pointers - 在指针接收器上调用 Elem() 方法以进行结构反射的必要性

c - 如何将部分字符串读入较小的字符串

c++ - Winsock C++ 连接超时