list < shared_ptr < foo > >
Here is the expected (sorted) program output:
424238335 596516649 719885386 846930886 1189641421 1649760492 1681692777 1714636915 1804289383 1957747793
Instead, I end up with:
1804289383 846930886 1681692777 1714636915 1957747793 424238335 719885386 1649760492 596516649 1189641421
Below is the code in question:
////////////////////////////////////////////////
#include <iostream> #include <list> using namespace std;
#include <boost/shared_ptr.hpp> using namespace boost;
////////////////////////////////////////////////
class my_class { public: int m_val; public: my_class();
bool operator<(const my_class&); void Display(); };
////////////////////////////////////////////////
my_class::my_class() { m_val = rand(); }
bool my_class::operator<(const my_class& arg) { return m_val < arg.m_val; }
void my_class::Display() { cout << m_val << "\n"; }
////////////////////////////////////////////////
int main( int argc, char **argv ) { // list < my_class > my_list; // list < my_class >::iterator my_iter;
list < shared_ptr < my_class > > my_list; list < shared_ptr < my_class > >::iterator my_iter;
//populate my_list for (int x=0; x<10; x++) { // my_class tmp_obj;
shared_ptr < my_class > tmp_obj; tmp_obj.reset(new my_class);
my_list.push_back(tmp_obj); }
//sort the list my_list.sort();
//display contents of my_list my_iter = my_list.begin(); while (my_iter != my_list.end()) { // (*my_iter).Display();
(*my_iter)->Display();
++my_iter; }
return 0; }
////////////////////////////////////////////////
Thanks in advance for any help you may render...
_________________________________________________________________
Help STOP SPAM with the new MSN 8 and get 2 months FREE* http://join.msn.com/?page=features/junkmail
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost