N'a pas pu trouver facilement une solution en ligne ...std :: égalité avec TR1 :: types de shared_ptr
J'ai quelque chose de similaire à ce qui suit.
class Color {
public:
Color(std::string n) : name(n) {}
typedef std::tr1::shared_ptr<Color> Ptr;
std::string name;
};
quant à lui d'ailleurs ...
void Function()
{
std::vector<Color::Ptr> myVector;
Color::Ptr p1 = Color::Ptr(new Color("BLUE"));
Color::Ptr p2 = Color::Ptr(new Color("BLUE"));
// Note: p2 not added.
myVector.push_back(p1);
// This is where my predicament comes in..
std::find(myVector.begin(), myVector.end(), p2);
}
Comment pourrais-je écrire ce donc mon std :: trouver serait en fait déférence les smart_pointers et comparer les chaînes d'objets plutôt que leurs adresses de mémoire? Ma première approche consistait à écrire une fonction std :: equal personnalisée mais elle n'acceptait pas les templates comme ses propres types de templates.
Montrez-nous ce que vous avez essayé ... –