QSignalSpy和std :: shared_ptr

时间:2016-09-12 08:35:30

标签: c++ qt c++11 shared-ptr qsignalspy

我想测试使用带有std :: shared_ptr作为参数的信号/插槽的Qt代码。

我的问题是QSignalSpy类适用于所有其他类型的参数,在使用标准共享指针时似乎不太好用。实际上,takeFirst方法返回一个QVariant列表。我可以将参数转换为shared_ptr做类似的事情:

QVERIFY(arguments.at(0).value<std::shared_ptr<Canard>>() == canardInstance); // verify the first argument

然后我最终得到了两个引用相同堆内存的智能指针,当它超出当前范围时崩溃了。在我的案例中有没有办法使用QSignalSpy?

谢谢!

1 个答案:

答案 0 :(得分:1)

其实我完全错过了这一点。它运行正常(意味着引用计数正在按预期工作)但我有另一个原因导致内存损坏。我尝试使用QSharedPointer并获得相同的行为。

相关问题