libcamera: signal: Fix return value template type of BoundMethodMember

The BoundMethodMember instance created in Signal::connect() for
receivers inheriting from the Object class incorrectly sets the return
type to void instead of R. This doesn't cause any functional issue as
the return type is ignored anyway for signals, but should be fixed
nonetheless.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
Laurent Pinchart
2021-04-13 00:41:09 +03:00
parent 1ad214dd1b
commit ab8db44efb

View File

@@ -49,7 +49,7 @@ public:
ConnectionType type = ConnectionTypeAuto)
{
Object *object = static_cast<Object *>(obj);
SignalBase::connect(new BoundMethodMember<T, void, Args...>(obj, object, func, type));
SignalBase::connect(new BoundMethodMember<T, R, Args...>(obj, object, func, type));
}
template<typename T, typename R, typename std::enable_if_t<!std::is_base_of<Object, T>::value> * = nullptr>