diff options
Diffstat (limited to 'cpp/include/Ice/MetricsFunctional.h')
-rw-r--r-- | cpp/include/Ice/MetricsFunctional.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/cpp/include/Ice/MetricsFunctional.h b/cpp/include/Ice/MetricsFunctional.h index a40be09de17..1d738549803 100644 --- a/cpp/include/Ice/MetricsFunctional.h +++ b/cpp/include/Ice/MetricsFunctional.h @@ -21,6 +21,23 @@ template<typename R> struct ReferenceWrapper } }; +#ifdef ICE_CPP11_MAPPING // C++11 mapping +template<typename R> struct ReferenceWrapper<::std::shared_ptr<R> > +{ + static R* get(const ::std::shared_ptr<R>& v) + { + return v.get(); + } +}; + +template<typename R> struct ReferenceWrapper<const ::std::shared_ptr<R>& > +{ + static R* get(const ::std::shared_ptr<R>& v) + { + return v.get(); + } +}; +#else // C++98 mapping template<typename R> struct ReferenceWrapper<IceInternal::ProxyHandle<R> > { static R* get(const IceInternal::ProxyHandle<R>& v) @@ -52,6 +69,7 @@ template<typename R> struct ReferenceWrapper<const IceInternal::Handle<R>& > return v.get(); } }; +#endif template<typename R> struct ReferenceWrapper<R*> { |