Listing 11
#include <set>
#include <iostream>
using std::tr1::shared_ptr;
using std::set;
using std::cout;
int main()
{ // demonstrate comparison quirk
shared_ptr<int> sp0((int*)0);
shared_ptr<int> sp1((int*)0);
if (sp0 == sp1)
cout << "sp0 == sp1\n";
if (sp0 < sp1)
cout << "sp0 < sp1\n";
else
cout << "!(sp0 < sp1)\n";
if (sp1 < sp0)
cout << "sp1 < sp0\n";
else
cout << "!(sp1 < sp0)\n";
// search a set
set<shared_ptr<int> > my_set;
my_set.insert(sp0);
if (*my_set.begin() == sp1)
cout << "sp1 is in set\n";
else
cout << "sp1 is not in set\n";
if (my_set.find(sp1) == my_set.end())
cout << "didn't find sp1 in set\n";
else
cout << "found sp1 in set\n";
return 0;
}