And a related question: class A { void foo(int i){} void foo(Tuple!(int) i){} }
class B: A { override void foo(int i){} } int main() { auto b = new B; b.foo(tuple(5)); }This fails to compile. Why can't B use A's tuple overload of foo()? If I do this:
class B: A { override void foo(int i){} void foo(Tuple!(int) i){} // no override keyword is deprecated }The compiler warns about not using the override keyword, so it must be seeing the function?