diff options
author | Benoit Foucher <benoit@zeroc.com> | 2016-02-03 10:42:29 +0100 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2016-02-03 10:42:29 +0100 |
commit | 18a6720fcc3ece576f5fb26283e239cda2bebadd (patch) | |
tree | a7d9de0acab9e092943fb182fa880b2c4b950db6 /cpp/include/Ice/VirtualShared.h | |
parent | ICE-6861 - Java stream API changes (diff) | |
download | ice-18a6720fcc3ece576f5fb26283e239cda2bebadd.tar.bz2 ice-18a6720fcc3ece576f5fb26283e239cda2bebadd.tar.xz ice-18a6720fcc3ece576f5fb26283e239cda2bebadd.zip |
Refactored invocation code to better suite new C++11 mapping
Diffstat (limited to 'cpp/include/Ice/VirtualShared.h')
-rw-r--r-- | cpp/include/Ice/VirtualShared.h | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/cpp/include/Ice/VirtualShared.h b/cpp/include/Ice/VirtualShared.h index 3dd06ea55e0..62ad8f6771c 100644 --- a/cpp/include/Ice/VirtualShared.h +++ b/cpp/include/Ice/VirtualShared.h @@ -20,24 +20,24 @@ namespace Ice class VirtualEnableSharedFromThisBase : public std::enable_shared_from_this<VirtualEnableSharedFromThisBase> { public: + virtual ~VirtualEnableSharedFromThisBase() = default; }; template<typename T> class EnableSharedFromThis : public virtual VirtualEnableSharedFromThisBase { - public: std::shared_ptr<T> shared_from_this() const { return std::dynamic_pointer_cast<T>( - std::const_pointer_cast<VirtualEnableSharedFromThisBase>(VirtualEnableSharedFromThisBase::shared_from_this())); + std::const_pointer_cast<VirtualEnableSharedFromThisBase>( + VirtualEnableSharedFromThisBase::shared_from_this())); } - + std::weak_ptr<T> weak_from_this() const { - std::weak_ptr<T> self = shared_from_this(); - return self; + return shared_from_this(); } }; |