summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2019-10-27 00:21:54 +0100
committerDan Goodliffe <dan@randomdan.homeip.net>2019-10-27 00:25:27 +0100
commit9dfb3e9d1a6c987a9b27eae83c8395eb53b9413f (patch)
treefc2ce469af564947fc59cc82ac5a0f04f1e7e361
parentModernize build (diff)
downloadicetray-9dfb3e9d1a6c987a9b27eae83c8395eb53b9413f.tar.bz2
icetray-9dfb3e9d1a6c987a9b27eae83c8395eb53b9413f.tar.xz
icetray-9dfb3e9d1a6c987a9b27eae83c8395eb53b9413f.zip
Perfect forwarding add and addObject
-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>