Я использую g ++ 4.6.1 и обнаружил одно и то же сообщение об ошибке в аналогичной ситуации, это происходит, когда оба аргумента являются встроенными типами:
Оператор алгоритма + (const char * a, double b);оператор algo + (double a, const char * b);
Я понимаю, что было бы сложно переопределить + (int, int), потому что компилятор полагается на то, что он выполняет вычисления, так как вычисления происходят во время компиляции, а нево время выполнения, поэтому предоставляемый вами код недоступен во время компиляции, а позже во время выполнения данные уже рассчитаны.
Жаль, что мы не можем этого сделать, это должно быть разрешено для встроенных типов при условии, что типы былиотличается (это мой случай), и для этого случая у компилятора нет ответа по умолчанию.
для случая + (int, int), я думаю, что это никогда не будет разрешено из-за вышеизложенного.если только компиляторы не принимают какие-то параметры, чтобы оставить эти вычисления во время выполнения (и я еще не проверял такие параметры).Я думаю, что подобное происходит с поплавками.