using a template specialization of CallFunction to handle void return