Return types are not considered in overload resolution.

For some functions, it is not possible to specify the number and type of all arguments expected in a call. Such a function is declared by terminating the list of argument declarations with the ellipsis (...), which means ‘‘and maybe some more arguments.’’ For example: int printf(const char* ...);