QSignalSpy и std :: shared_ptr

Я хотел бы протестировать кусок кода Qt, который использует сигналы / слоты с std :: shared_ptr в качестве параметров.

Моя проблема в том, что класс QSignalSpy, который хорошо работает для всех других типов параметров, кажется, не очень хорошо работает, когда речь идет об использовании стандартных общих указателей. Действительно, метод takeFirst возвращает список QVariant. Я могу преобразовать аргумент в shared_ptr, сделав что-то вроде этого:

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

Но затем я получаю 2 интеллектуальных указателя, ссылающихся на одну и ту же кучу памяти, и она вылетает при выходе из текущей области видимости. Есть ли способ использовать QSignalSpy в моем случае?

Спасибо !

0

Решение

На самом деле я полностью упустил суть. Он работал нормально (имеется в виду, что подсчет ссылок работает, как и ожидалось), но я получил повреждение памяти по другой причине. Я попытался использовать QSharedPointer и получить то же поведение.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]