source/base: sourceCallback forward reference type information
Change-Id: I2006ae1a116ec9a664d0dd3b56ed5242f8dbd469
Signed-off-by: William A. Kennington III <wak@google.com>
diff --git a/src/sdeventplus/source/base.hpp b/src/sdeventplus/source/base.hpp
index c9c7562..eeef626 100644
--- a/src/sdeventplus/source/base.hpp
+++ b/src/sdeventplus/source/base.hpp
@@ -9,6 +9,7 @@
#include <stdplus/handle/managed.hpp>
#include <systemd/sd-bus.h>
#include <type_traits>
+#include <utility>
namespace sdeventplus
{
@@ -152,7 +153,7 @@
template <typename Callback, class Source,
const Callback& (Source::*getter)() const, typename... Args>
static int sourceCallback(const char* name, sd_event_source*,
- void* userdata, Args... args)
+ void* userdata, Args&&... args)
{
if (userdata == nullptr)
{
@@ -161,7 +162,8 @@
}
Source* source = reinterpret_cast<Source*>(userdata);
return internal::performCallback(name, (source->*getter)(),
- std::ref(*source), args...);
+ std::ref(*source),
+ std::forward<Args>(args)...);
}
private: