summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/libcamera/object.h10
1 files changed, 6 insertions, 4 deletions
diff --git a/include/libcamera/object.h b/include/libcamera/object.h
index 86e0f726..21b70460 100644
--- a/include/libcamera/object.h
+++ b/include/libcamera/object.h
@@ -29,13 +29,15 @@ public:
void postMessage(std::unique_ptr<Message> msg);
- template<typename T, typename... Args, typename std::enable_if<std::is_base_of<Object, T>::value>::type * = nullptr>
- void invokeMethod(void (T::*func)(Args...), ConnectionType type, Args... args)
+ template<typename T, typename... FuncArgs, typename... Args,
+ typename std::enable_if<std::is_base_of<Object, T>::value>::type * = nullptr>
+ void invokeMethod(void (T::*func)(FuncArgs...), ConnectionType type,
+ Args... args)
{
T *obj = static_cast<T *>(this);
BoundMethodBase *method =
- new BoundMemberMethod<T, Args...>(obj, this, func, type);
- void *pack = new typename BoundMemberMethod<T, Args...>::PackType{ args... };
+ new BoundMemberMethod<T, FuncArgs...>(obj, this, func, type);
+ void *pack = new typename BoundMemberMethod<T, FuncArgs...>::PackType{ args... };
method->activatePack(pack, true);
}