From 042e30a3dc057aef4a02d95960e4dd4fb8d083ae Mon Sep 17 00:00:00 2001 From: Stephan Bergmann Date: Wed, 28 Aug 2019 08:43:44 +0200 Subject: Avoid adding a function template declaration to namespace std Change-Id: I1368276c859d3c81f4ebfbeca47bb99e781f2fed Reviewed-on: https://gerrit.libreoffice.org/78214 Tested-by: Jenkins Reviewed-by: Stephan Bergmann --- slideshow/source/engine/eventmultiplexer.cxx | 37 ++++++++++++++++------------ 1 file changed, 21 insertions(+), 16 deletions(-) (limited to 'slideshow') diff --git a/slideshow/source/engine/eventmultiplexer.cxx b/slideshow/source/engine/eventmultiplexer.cxx index 07f7ddaa8af7..1ea583da8d9c 100644 --- a/slideshow/source/engine/eventmultiplexer.cxx +++ b/slideshow/source/engine/eventmultiplexer.cxx @@ -45,19 +45,23 @@ #include #include #include +#include #include using namespace ::com::sun::star; - -namespace std +namespace { // add operator== for weak_ptr, so we can use std::find over lists of them - template static bool operator==( weak_ptr const& rLHS, - weak_ptr const& rRHS ) - { - return rLHS.lock().get() == rRHS.lock().get(); - } + struct ViewEventHandlerWeakPtrWrapper final { + slideshow::internal::ViewEventHandlerWeakPtr ptr; + + ViewEventHandlerWeakPtrWrapper(slideshow::internal::ViewEventHandlerWeakPtr thePtr): + ptr(std::move(thePtr)) {} + + bool operator ==(ViewEventHandlerWeakPtrWrapper const & other) const + { return ptr.lock().get() == other.ptr.lock().get(); } + }; } namespace slideshow { @@ -209,8 +213,8 @@ struct EventMultiplexerImpl PauseEventHandlerSharedPtr, std::vector > ImplPauseHandlers; typedef ThreadUnsafeListenerContainer< - ViewEventHandlerWeakPtr, - std::vector > ImplViewHandlers; + ViewEventHandlerWeakPtrWrapper, + std::vector > ImplViewHandlers; typedef ThreadUnsafeListenerContainer< ViewRepaintHandlerSharedPtr, std::vector > ImplRepaintHandlers; @@ -1101,8 +1105,8 @@ void EventMultiplexer::notifyViewAdded( const UnoViewSharedPtr& rView ) mpImpl->mxListener.get() ); mpImpl->maViewHandlers.applyAll( - [&rView]( const ViewEventHandlerWeakPtr& pHandler ) - { return pHandler.lock()->viewAdded( rView ); } ); + [&rView]( const ViewEventHandlerWeakPtrWrapper& pHandler ) + { return pHandler.ptr.lock()->viewAdded( rView ); } ); } void EventMultiplexer::notifyViewRemoved( const UnoViewSharedPtr& rView ) @@ -1123,15 +1127,15 @@ void EventMultiplexer::notifyViewRemoved( const UnoViewSharedPtr& rView ) mpImpl->mxListener.get() ); mpImpl->maViewHandlers.applyAll( - [&rView]( const ViewEventHandlerWeakPtr& pHandler ) - { return pHandler.lock()->viewRemoved( rView ); } ); + [&rView]( const ViewEventHandlerWeakPtrWrapper& pHandler ) + { return pHandler.ptr.lock()->viewRemoved( rView ); } ); } void EventMultiplexer::notifyViewChanged( const UnoViewSharedPtr& rView ) { mpImpl->maViewHandlers.applyAll( - [&rView]( const ViewEventHandlerWeakPtr& pHandler ) - { return pHandler.lock()->viewChanged( rView ); } ); + [&rView]( const ViewEventHandlerWeakPtrWrapper& pHandler ) + { return pHandler.ptr.lock()->viewChanged( rView ); } ); } void EventMultiplexer::notifyViewChanged( const uno::Reference& xView ) @@ -1147,7 +1151,8 @@ void EventMultiplexer::notifyViewChanged( const uno::ReferencemaViewHandlers.applyAll( - std::mem_fn( &ViewEventHandler::viewsChanged )); + []( const ViewEventHandlerWeakPtrWrapper& pHandler ) + { return pHandler.ptr.lock()->viewsChanged(); } ); } void EventMultiplexer::notifyViewClobbered( -- cgit v1.2.3