Ошибка с Google Mock и shared_from_this? - PullRequest
0 голосов
/ 25 января 2012

Я получаю следующую ошибку в моем тесте:

неизвестный файл: ошибка: исключение C ++ с описанием "tr1 :: bad_weak_ptr", выданное в теле теста.

Пройдя тест по одной строке за раз, я вижу, что исключение выдается на строку, где я вызываю:

MyClassSharedPointer myClassPointer(shared_from_this());

Мне нужен указатель на объект, который выполняет кодв, потому что мне нужно установить объект в качестве наблюдателя одного из его членов (используя boost :: сигналы для реализации наблюдателя).Код, кажется, работает нормально при нормальном выполнении, но из моего тестового кода я получаю эту ошибку.

1 Ответ

1 голос
/ 25 января 2012

Проблема в том, что в моем производственном коде объект myClass упоминается как shared_ptr, тогда как в моем тестовом коде я по ошибке объявил объект myClass как пустой указатель.Это объясняет, почему shared_from_this() не работал ... потому что this на самом деле не был shared_ptr.

...