I was asked by a friend about validity of following function prototypes,
void func1(int = 0, int*);
void func2(int = 1, int& = 2);
void func3(int*, int& = 3);
void func4(int& = 4, int* = 0);
void func5(int& = 0, int = 1);
void func6(int = 5, int& = 6, int* = 0);
I think the only prototype that is invalid is func1 because it does not have default parameter on the far right.
I am not sure if I am right, though.