From 9a0b88bf7777c153dc46ace22db74ef24d51583a Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Tue, 29 Apr 2008 12:55:25 +0000 Subject: update release date to actual date git-svn-id: svn+q:///qpdf/trunk@599 71b93d88-0707-0410-a8cf-f5a4172ac649 --- libtests/pointer_holder.cc | 81 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 libtests/pointer_holder.cc (limited to 'libtests/pointer_holder.cc') diff --git a/libtests/pointer_holder.cc b/libtests/pointer_holder.cc new file mode 100644 index 00000000..9176df17 --- /dev/null +++ b/libtests/pointer_holder.cc @@ -0,0 +1,81 @@ + +#include + +#include +#include +#include + +#include + +class Object +{ + public: + Object(); + ~Object(); + void hello(); + + private: + static int next_id; + int id; +}; + + +int Object::next_id = 0; + +Object::Object() +{ + this->id = ++next_id; + std::cout << "created Object, id " << this->id << std::endl; +} + +Object::~Object() +{ + std::cout << "destroyed Object, id " << this->id << std::endl; +} + +void +Object::hello() +{ + std::cout << "calling Object::hello for " << this->id << std::endl; +} + +typedef PointerHolder ObjectHolder; + +int main(int argc, char* argv[]) +{ + std::list ol1; + + ObjectHolder oh0; + { + std::cout << "hello" << std::endl; + Object* o1 = new Object; + ObjectHolder oh1(o1); + ObjectHolder oh2(oh1); + ObjectHolder oh3(new Object); + ObjectHolder oh4; + ObjectHolder oh5; + if (oh4 == oh5) + { + std::cout << "nulls equal" << std::endl; + } + oh3 = oh1; + oh4 = oh2; + if (oh3 == oh4) + { + std::cout << "equal okay" << std::endl; + } + if ((! (oh3 < oh4)) && (! (oh4 < oh3))) + { + std::cout << "less than okay" << std::endl; + } + ol1.push_back(oh3); + ol1.push_back(oh3); + Object* o3 = new Object; + oh0 = o3; + } + + ol1.front().getPointer()->hello(); + ol1.pop_front(); + std::cout << "goodbye" << std::endl; + return 0; +} -- cgit v1.2.3-70-g09d2