diff --git a/src/domain_decomposition/MakeBlockDataInitFunction.h b/src/domain_decomposition/MakeBlockDataInitFunction.h index 99acc66ac58f8d87bbefe4bd13505dbee6bab620..de41cd696de30b312f47883cbc59987a3e6b71d2 100644 --- a/src/domain_decomposition/MakeBlockDataInitFunction.h +++ b/src/domain_decomposition/MakeBlockDataInitFunction.h @@ -34,19 +34,19 @@ namespace domain_decomposition { /// \cond internal namespace internal { - template<class T, class ... P> - T * newFunc( const IBlock* const, const P & ... p ) { - return new T(p...); + template<class T, typename... Args> + T * newFunc( const IBlock* const, Args&... args ) { + return new T(args...); } } // namespace internal /// \endcond -template<class T, class ... P> +template<class T, typename... Args> std::function< T* ( const IBlock* const block ) > -makeBlockDataInitFunction(const P & ... p) { - return std::bind( internal::newFunc<T,P...>, std::placeholders::_1, p... ); +makeBlockDataInitFunction(Args&&... args) { + return std::bind( internal::newFunc<T,Args...>, std::placeholders::_1, std::forward<Args>(args)... ); }