Можно ли вывести сигнатуру разрешенной перегрузки метода/функции даже в случае неявных преобразований параметров?

Скажем, у нас есть

struct Test {
    void foo(int *);
    void foo(float);
} test;

Учитывая следующий вызов метода:

test.foo(1);

Компилятор разрешит ее, вызвав Test::foo(float), выполнив неявное преобразование из int в float.

Можно ли как-то получить сигнатуру разрешенной таким образом перегрузки метода как тип указателя, т.е. void (Test::*)(float)?

Самое близкое к положительному ответу, которое я мог получить, это ответ на другой вопрос, однако этот подход не сработает в случае неявное преобразование одного или нескольких параметров.


person Fabio A.    schedule 24.02.2018    source источник