summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--icetray/icetray/icecube.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/icetray/icetray/icecube.h b/icetray/icetray/icecube.h
index f2a3454..13c0545 100644
--- a/icetray/icetray/icecube.h
+++ b/icetray/icetray/icecube.h
@@ -26,20 +26,20 @@ namespace IceTray {
public:
template<typename T, typename I, typename ... Args>
- static auto addObject(const Ice::ObjectAdapterPtr & adp, const std::string & name, const Args & ... args)
+ static auto addObject(const Ice::ObjectAdapterPtr & adp, const std::string & name, Args && ... args)
{
static_assert(std::is_convertible<I *, T *>::value);
static_assert(std::is_convertible<I *, Ice::Object *>::value);
- auto prx = adp->add(std::make_shared<I>(args...), Ice::stringToIdentity(name));
+ auto prx = adp->add(std::make_shared<I>(std::forward<Args>(args)...), Ice::stringToIdentity(name));
return pm()->add<CubePlugIn>(std::make_shared<CubeObject>(prx),
typeid(typename T::ProxyType).name(), __FILE__, __LINE__);
}
template<typename T, typename I, typename ... Args>
- static auto add(const Args & ... args)
+ static auto add(Args && ... args)
{
static_assert(std::is_convertible<CubePlugInOf<I> *, T *>::value);
- return pm()->add<CubePlugIn>(std::make_shared<CubePlugInOf<I>>(args...), typeid(T).name(), __FILE__, __LINE__);
+ return pm()->add<CubePlugIn>(std::make_shared<CubePlugInOf<I>>(std::forward<Args>(args)...), typeid(T).name(), __FILE__, __LINE__);
}
template<typename T>