From 1e13cf6fec34a2ca2852b1b6144a2d2472cc163c Mon Sep 17 00:00:00 2001 From: gallaert Date: Sun, 19 Apr 2020 12:05:45 +0100 Subject: [PATCH] Replace boost::shared_ptr/weak_ptr by std::shared_ptr/weak_ptr --- simgear/canvas/canvas_fwd.hxx | 6 ++--- simgear/nasal/cppbind/Ghost.hxx | 16 +++++++++----- simgear/nasal/cppbind/detail/nasal_traits.hxx | 5 +++-- simgear/nasal/cppbind/test/cppbind_test.cxx | 17 ++++++-------- .../nasal/cppbind/test/cppbind_test_ghost.cxx | 22 ++++++++----------- 5 files changed, 32 insertions(+), 34 deletions(-) diff --git a/simgear/canvas/canvas_fwd.hxx b/simgear/canvas/canvas_fwd.hxx index 640c2ffa..4d0127d1 100644 --- a/simgear/canvas/canvas_fwd.hxx +++ b/simgear/canvas/canvas_fwd.hxx @@ -27,8 +27,6 @@ #include #include -#include -#include #include #include @@ -62,8 +60,8 @@ namespace canvas #define SG_FWD_DECL(name)\ class name;\ - typedef boost::shared_ptr name##Ptr;\ - typedef boost::weak_ptr name##WeakPtr; + typedef std::shared_ptr name##Ptr;\ + typedef std::weak_ptr name##WeakPtr; SG_FWD_DECL(Placement) SG_FWD_DECL(SystemAdapter) diff --git a/simgear/nasal/cppbind/Ghost.hxx b/simgear/nasal/cppbind/Ghost.hxx index c1ebbed2..f1545ca4 100644 --- a/simgear/nasal/cppbind/Ghost.hxx +++ b/simgear/nasal/cppbind/Ghost.hxx @@ -33,16 +33,22 @@ #include #include #include -#include #include +#include template -inline T* get_pointer(boost::weak_ptr const& p) +inline T* get_pointer(std::weak_ptr const& p) { return p.lock().get(); } +template +inline T* get_pointer(std::shared_ptr const& p) +{ + return p.get(); +} + template inline T* get_pointer(SGWeakPtr const& p) { @@ -77,7 +83,7 @@ get_pointer(T ptr) // With old g++ on Jenkins (21.07.2014), ADL for static_pointer_cast does not // work. - using boost::static_pointer_cast; + using std::static_pointer_cast; using osg::static_pointer_cast; #else // VS (2008, 2010, ... ?) only allow this version. @@ -193,7 +199,7 @@ namespace nasal * int myMember(); * void doSomethingElse(const nasal::CallContext& ctx); * } - * using MyClassPtr = boost::shared_ptr; + * using MyClassPtr = std::shared_ptr; * * std::string myOtherFreeMember(int num); * @@ -201,7 +207,7 @@ namespace nasal * { * // Register a nasal ghost type for MyClass. This needs to be done only * // once before creating the first ghost instance. The exposed class needs - * // to be wrapped inside a shared pointer, eg. boost::shared_ptr. + * // to be wrapped inside a shared pointer, eg. std::shared_ptr. * Ghost::init("MyClass") * // Members can be exposed by getters and setters * .member("x", &MyClass::getX, &MyClass::setX) diff --git a/simgear/nasal/cppbind/detail/nasal_traits.hxx b/simgear/nasal/cppbind/detail/nasal_traits.hxx index 228b2556..37329713 100644 --- a/simgear/nasal/cppbind/detail/nasal_traits.hxx +++ b/simgear/nasal/cppbind/detail/nasal_traits.hxx @@ -30,11 +30,12 @@ template class SGWeakPtr; template class SGVec2; template class SGVec4; -namespace boost +namespace std { template class shared_ptr; template class weak_ptr; } + namespace osg { class Referenced; @@ -114,7 +115,7 @@ SG_MAKE_TRAIT(<>, osg::Vec4f, is_vec4) SG_MAKE_SHARED_PTR_TRAIT(SGSharedPtr, SGWeakPtr, true) SG_MAKE_SHARED_PTR_TRAIT(osg::ref_ptr, osg::observer_ptr, true) - SG_MAKE_SHARED_PTR_TRAIT(boost::shared_ptr, boost::weak_ptr, false) + SG_MAKE_SHARED_PTR_TRAIT(std::shared_ptr, std::weak_ptr, false) #undef SG_MAKE_SHARED_PTR_TRAIT diff --git a/simgear/nasal/cppbind/test/cppbind_test.cxx b/simgear/nasal/cppbind/test/cppbind_test.cxx index 73b16e41..d488c5a3 100644 --- a/simgear/nasal/cppbind/test/cppbind_test.cxx +++ b/simgear/nasal/cppbind/test/cppbind_test.cxx @@ -9,9 +9,6 @@ #include #include -#include -#include - #include enum MyEnum @@ -79,7 +76,7 @@ struct DoubleDerived: }; -typedef boost::shared_ptr BasePtr; +typedef std::shared_ptr BasePtr; typedef std::vector BaseVec; struct DoubleDerived2: @@ -102,13 +99,13 @@ class SGWeakReferenceBasedClass: }; -typedef boost::shared_ptr DerivedPtr; -typedef boost::shared_ptr DoubleDerivedPtr; -typedef boost::shared_ptr DoubleDerived2Ptr; +typedef std::shared_ptr DerivedPtr; +typedef std::shared_ptr DoubleDerivedPtr; +typedef std::shared_ptr DoubleDerived2Ptr; typedef SGSharedPtr SGRefBasedPtr; typedef SGSharedPtr SGWeakRefBasedPtr; -typedef boost::weak_ptr DerivedWeakPtr; +typedef std::weak_ptr DerivedWeakPtr; naRef derivedFreeMember(Derived&, const nasal::CallContext&) { return naNil(); } naRef f_derivedGetX(const Derived& d, naContext c) @@ -361,9 +358,9 @@ BOOST_AUTO_TEST_CASE( cppbind_misc_testing ) BOOST_CHECK_EQUAL( c.from_nasal(derived), d3 ); BOOST_CHECK_NE( c.from_nasal(derived), d2 ); BOOST_CHECK_EQUAL( c.from_nasal(derived), - boost::dynamic_pointer_cast(d3) ); + std::dynamic_pointer_cast(d3) ); BOOST_CHECK_EQUAL( c.from_nasal(derived), - boost::dynamic_pointer_cast(d3) ); + std::dynamic_pointer_cast(d3) ); BOOST_CHECK_THROW( c.from_nasal(derived), bad_nasal_cast ); std::map instances; diff --git a/simgear/nasal/cppbind/test/cppbind_test_ghost.cxx b/simgear/nasal/cppbind/test/cppbind_test_ghost.cxx index 45bf105b..77003e92 100644 --- a/simgear/nasal/cppbind/test/cppbind_test_ghost.cxx +++ b/simgear/nasal/cppbind/test/cppbind_test_ghost.cxx @@ -6,10 +6,6 @@ #include #include -#include -#include -#include - class Base1: public virtual SGVirtualWeakReferenced {}; @@ -43,7 +39,7 @@ typedef SGSharedPtr SGReferencedPtr; CHECK_PTR_TRAIT_TYPE(weak, weak_ref, weak)\ CHECK_PTR_TRAIT(DerivedPtr, DerivedWeakPtr) -CHECK_PTR_TRAIT(boost::shared_ptr, boost::weak_ptr) +CHECK_PTR_TRAIT(std::shared_ptr, std::weak_ptr) #undef CHECK_PTR_TRAIT #undef CHECK_PTR_TRAIT_TYPE @@ -150,11 +146,11 @@ BOOST_AUTO_TEST_CASE( ghost_casting_storage ) CHECK_PTR_STORAGE_TRAIT_TYPE(DerivedPtr, Derived) CHECK_PTR_STORAGE_TRAIT_TYPE(DerivedWeakPtr, DerivedWeakPtr) -typedef boost::shared_ptr BoostDerivedPtr; -CHECK_PTR_STORAGE_TRAIT_TYPE(BoostDerivedPtr, BoostDerivedPtr) +typedef std::shared_ptr StdDerivedPtr; +CHECK_PTR_STORAGE_TRAIT_TYPE(StdDerivedPtr, StdDerivedPtr) -typedef boost::weak_ptr BoostDerivedWeakPtr; -CHECK_PTR_STORAGE_TRAIT_TYPE(BoostDerivedWeakPtr, BoostDerivedWeakPtr) +typedef std::weak_ptr StdDerivedWeakPtr; +CHECK_PTR_STORAGE_TRAIT_TYPE(StdDerivedWeakPtr, StdDerivedWeakPtr) #undef CHECK_PTR_STORAGE_TRAIT_TYPE @@ -164,8 +160,8 @@ BOOST_STATIC_ASSERT(( nasal::shared_ptr_traits::is_intrusive::value) BOOST_STATIC_ASSERT(( nasal::shared_ptr_traits::is_intrusive::value)); BOOST_STATIC_ASSERT(( nasal::shared_ptr_traits::is_intrusive::value)); -BOOST_STATIC_ASSERT((!nasal::shared_ptr_traits >::is_intrusive::value)); -BOOST_STATIC_ASSERT((!nasal::shared_ptr_traits >::is_intrusive::value)); +BOOST_STATIC_ASSERT((!nasal::shared_ptr_traits >::is_intrusive::value)); +BOOST_STATIC_ASSERT((!nasal::shared_ptr_traits >::is_intrusive::value)); BOOST_AUTO_TEST_CASE( storage_traits ) { @@ -207,7 +203,7 @@ BOOST_AUTO_TEST_CASE( bind_methods ) arg4 = a4; } }; - using TestClassPtr = boost::shared_ptr; + using TestClassPtr = std::shared_ptr; auto set_func = boost::function< void (TestClass&, int, const std::string&, const std::string&, int) >(&TestClass::set); @@ -216,7 +212,7 @@ BOOST_AUTO_TEST_CASE( bind_methods ) .method("setReverse", set_func, std::index_sequence<3,2,1,0>{}); TestContext ctx; - auto test = boost::make_shared(); + auto test = std::make_shared(); ctx.exec("me.set(1, \"s2\", \"s3\", 4);", ctx.to_me(test)); BOOST_CHECK_EQUAL(test->arg1, 1);