diff --git a/Parallel/Core/vtkThreadedCallbackQueue.txx b/Parallel/Core/vtkThreadedCallbackQueue.txx
index 1daa755408c4aa84739074d68442e7927fd3f1b6..21187394c4739079ed905a9867e9abe583355e49 100644
--- a/Parallel/Core/vtkThreadedCallbackQueue.txx
+++ b/Parallel/Core/vtkThreadedCallbackQueue.txx
@@ -326,6 +326,16 @@ struct vtkThreadedCallbackQueue::Signature<ReturnT (*)(ArgsT...)>
   static constexpr std::size_t ArgsSize = sizeof...(ArgsT);
 };
 
+//=============================================================================
+// For function pointers
+template <class ReturnT, class... ArgsT>
+struct vtkThreadedCallbackQueue::Signature<ReturnT (&)(ArgsT...)>
+{
+  using ArgsTuple = std::tuple<ArgsT...>;
+  using InvokeResult = ReturnT;
+  static constexpr std::size_t ArgsSize = sizeof...(ArgsT);
+};
+
 //=============================================================================
 // For functors
 template <class FT>