diff --git a/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceThreadPool.h b/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceThreadPool.h index 6accc66b4..8858cbc80 100644 --- a/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceThreadPool.h +++ b/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceThreadPool.h @@ -163,7 +163,7 @@ struct ThreadPoolDevice { Notification* n = new Notification(); pool_->Schedule( std::bind(&FunctionWrapperWithNotification::run, n, - std::move(f), args...)); + std::forward(f), args...)); return n; } @@ -172,16 +172,16 @@ struct ThreadPoolDevice { Args&&... args) const { pool_->Schedule( std::bind(&FunctionWrapperWithBarrier::run, b, - std::move(f), args...)); + std::forward(f), args...)); } template EIGEN_STRONG_INLINE void enqueueNoNotification(Function&& f, Args&&... args) const { if (sizeof...(args) > 0) { - pool_->Schedule(std::bind(std::move(f), args...)); + pool_->Schedule(std::bind(std::forward(f), args...)); } else { - pool_->Schedule(std::move(f)); + pool_->Schedule(std::forward(f)); } }