Вы получите ошибку типа «перегруженный метод отличается только типом возврата», если вы используете VC ++. Это связано с тем, что сигнатуры методов / функций не включают тип возвращаемого значения. Я предполагаю, что это из-за неоднозначности, которую это может вызвать, если возвращаемое значение не присваивается чему-либо например,
int iMyvar = object.method (); // очевидно, какой тип должен быть возвращен
Контрастность с: -
object.method (); // какую перегрузку вызовет компилятор, если тип возвращаемого значения будет частью сигнатуры? Ambiguos.