AS
Пара (int, double) (int64_t, int64_t) неявное преобразование int->double не запускает
struct A {здесь все понятно почему вызывается первая перегрузка? для первой перегрузки требуется одно преобразование второго аргумента, для второй два
A(int64_t a, int64_t other) {std::cout << "A int: " << a << '\n';}
A(double b, int other) {std::cout << "A double: " << b << '\n';}
};
...
int64_t x = 42;
double other = 1.0f;
A ax(x, other);