2010-02-17 9 views
0

J'ai une situation où je voudrais comparer un objet encapsulé par un shared_ptr avec le même type d'objet créé sur une pile. À l'heure actuelle, je reçois le pointeur brut et déréférencement à faire la comparaison par exemple:Compare shared_ptr avec l'objet créé sur la pile

Object A; 
std::shared_ptr<Object> B; 

// assume class Object has its comparison operators overloaded 
if (*B.get() < A) 
    // do stuff here 

Y at-il une meilleure façon de le faire? Cela suppose que lorsque les deux objets se rencontrent pour être comparés, l'un est shared_ptr et l'autre ne l'est pas.

Répondre

2

Cela me semble juste. C'est un pointeur. Pour comparer ce qu'il désigne à autre chose, vous devez le déréférencer.