diff options
author | Jay Berkenbilt <ejb@ql.org> | 2022-02-04 15:46:55 +0100 |
---|---|---|
committer | Jay Berkenbilt <ejb@ql.org> | 2022-02-04 19:12:37 +0100 |
commit | f727bc94432905d79af23cf0aef14854965da2cd (patch) | |
tree | f4d3d41c28bb0f1536bf609bcbbdb2ec83b339dd /libtests/pointer_holder.cc | |
parent | f76191f0c217f48b5a935fa7170771fdfb66e2cb (diff) | |
download | qpdf-f727bc94432905d79af23cf0aef14854965da2cd.tar.zst |
PointerHolder: add get() and use_count() for forward compatibility
PointerHolder will be replaced with shared_ptr, so let people start
moving.
Diffstat (limited to 'libtests/pointer_holder.cc')
-rw-r--r-- | libtests/pointer_holder.cc | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/libtests/pointer_holder.cc b/libtests/pointer_holder.cc index 469bfc21..913449e4 100644 --- a/libtests/pointer_holder.cc +++ b/libtests/pointer_holder.cc @@ -4,8 +4,6 @@ #include <stdlib.h> #include <list> -#include <qpdf/QUtil.hh> - class Object { public: @@ -47,13 +45,20 @@ Object::hello() const typedef PointerHolder<Object> ObjectHolder; -void callHello(ObjectHolder const& oh) +void callHello(ObjectHolder& oh) { oh.getPointer()->hello(); oh->hello(); (*oh).hello(); } +void callHelloWithGet(ObjectHolder const& oh) +{ + oh.get()->hello(); + oh->hello(); + (*oh).hello(); +} + int main(int argc, char* argv[]) { std::list<ObjectHolder> ol1; @@ -66,7 +71,7 @@ int main(int argc, char* argv[]) std::cout << "oh1 refcount = " << oh1.getRefcount() << std::endl; ObjectHolder oh2(oh1); std::cout << "oh1 refcount = " << oh1.getRefcount() << std::endl; - std::cout << "oh2 refcount = " << oh2.getRefcount() << std::endl; + std::cout << "oh2 refcount = " << oh2.use_count() << std::endl; ObjectHolder oh3(new Object); ObjectHolder oh4; ObjectHolder oh5; @@ -89,12 +94,15 @@ int main(int argc, char* argv[]) ol1.push_back(oh3); Object* o3 = new Object; oh0 = o3; + PointerHolder<Object const> oh6(new Object()); + oh6->hello(); } ol1.front().getPointer()->hello(); ol1.front()->hello(); (*ol1.front()).hello(); callHello(ol1.front()); + callHelloWithGet(ol1.front()); ol1.pop_front(); std::cout << "array" << std::endl; PointerHolder<Object> oarr1_ph(true, new Object[2]); |