В контекстах с точной подписью соответствующая перегрузка выбирается автоматически:
void (A::*p_i)(int) = &A::print;
void (A::*f_ii)(int, int) = &Demo::f;
В тех случаях, когда подпись не может быть выведена:
//auto f_a = &A::print; // ambiguous - which one???
вы можете явно выбрать с помощью приведения :
auto f_a = static_cast<void (A::*)(int)>(&A::print);