La forma más sencilla de determinar el tipo de función de retorno

Dada una función muy simple, pero larga, como:

int foo(int a, int b, int c, int d) {
    return 1;
}

// using ReturnTypeOfFoo = ???

¿Cuál es la forma más simple y concisa de determinar el tipo de retorno de la función ReturnTypeOfFoo, en este ejemplo:int) en tiempo de compilación sin repetir los tipos de parámetros de la función (solo por nombre, ya que se sabe que la función no tiene sobrecargas adicionales)?

Respuestas a la pregunta(3)

Su respuesta a la pregunta