我可以访问 null shared_ptr 对象的成员函数:
#include <memory>
#include <iostream>
class A
{
public:
int getNum() {return 1234;}
};
int main()
{
std::shared_ptr<A> pA(nullptr);
std::cout << pA->getNum() << std::endl;
}
在我期待异常时返回 1234。同样的结果发生在
std::shared_ptr<A> pA();
或者
std::shared_ptr<A> pA();
pA.reset();
这真的是预期的行为吗?如果是在成员函数调用的情况下引发异常的 corect shared_ptr 定义是什么?
使用VS2010。