Учитывая очень простую, но длительную функцию, такую как:
int foo(int a, int b, int c, int d) {
    return 1;
}
// using ReturnTypeOfFoo = ???
  Каков самый простой и сжатый способ определения возвращаемого типа функции (ReturnTypeOfFoo, в этом примере: int) во время компиляции без повторения типов параметров функции (только по имени, поскольку известно, что функция не имеет никаких дополнительных перегрузок )?