Question

Je reçois l'erreur suivante jetée dans un test de mien:

Fichier inconnu: Erreur: C ++ Exception avec description "TR1 :: bad_weak_ptr" jeté dans le corps du test.

Entrantez la ligne de test Une ligne à la fois, je peux voir que l'exception est lancée sur une ligne où j'appelle:

MyClassSharedPointer myClassPointer(shared_from_this());

J'ai besoin d'un pointeur sur l'objet que le code exécute, car je dois définir l'objet en tant qu'observateur de l'un de ses membres (en utilisant Boost :: Signaux pour mettre en œuvre l'observateur).Le code semble fonctionner correctement tout en exécutant normalement, mais de mon code de test, je reçois cette erreur.

Était-ce utile?

La solution

DOH Le problème était que, dans mon code de production, l'objet MyClass est référencé en tant que Shared_PTR alors que dans mon code de test, j'ai déclaré par erreur l'objet MyClass en tant que pointeur nue.Ce qui explique pourquoi shared_from_this() ne fonctionnait pas ... parce que this n'était pas en fait un partage_ptr.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top