From 195e1cb2ad96d289d6d21063a3aca5a8d6f56e01 Mon Sep 17 00:00:00 2001 From: John Maguire Date: Thu, 13 Dec 2012 16:55:23 +0100 Subject: [PATCH] Support arbitrary return type in closure for member function pointer. --- ext/libclementine-common/core/closure.h | 4 ++-- tests/closure_test.cpp | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/ext/libclementine-common/core/closure.h b/ext/libclementine-common/core/closure.h index ed7ab49d6..ca0081109 100644 --- a/ext/libclementine-common/core/closure.h +++ b/ext/libclementine-common/core/closure.h @@ -213,11 +213,11 @@ _detail::ClosureBase* NewClosure( return NewClosure(sender, signal, boost::bind(callback, args...)); } -template +template _detail::ClosureBase* NewClosure( QObject* sender, const char* signal, - T* receiver, void (T::*callback)(Args...), + T* receiver, Unused (T::*callback)(Args...), const Args&... args) { return NewClosure(sender, signal, boost::bind(callback, receiver, args...)); } diff --git a/tests/closure_test.cpp b/tests/closure_test.cpp index 2eeb48059..3bba20033 100644 --- a/tests/closure_test.cpp +++ b/tests/closure_test.cpp @@ -107,8 +107,9 @@ namespace { class Bar { public: explicit Bar(int a) : foo_(a) {} - void Foo(int* answer) { + bool Foo(int* answer) { *answer = foo_; + return true; } private: