I am asking about the static binding of the function in C++. What's the data type conversion rules for the function binding.
Suppose we have
void func(int x);
void func(long x);
void func(float x);
void func(double x);
void func(char x);
and I have one function in main
func(1)
I know the function func(int x) will be called. I am curious about the rules of that.
Is it always the best match?
Does the order of declaration matter?
In any case the data type conversion will be applied?
What's the concern when the rules are designed?