your problem rather is related to wrong function overloading.
If you want to overload a function with another one, they must differ in their signature, i.e. they cannot have the same parameter list. The return value is not part of the signature, so you get an error.
You should decide which version to take.
I don't know what the MSC does, but I think it silently discards one function (which in my opinion is not a good habit).