Jacob Carlborg wrote:

The following code does not compile:

void foo(string a) {}

class Base
{
     alias bar this;

     string bar()
     {
         return "";
     }
}

class Sub : Base {}

void main()
{
     auto sub = new Sub;
     foo(sub);
}

But if the "alias this" is copied/moved to the subclass it works. Is this expected behavior?

yes, afaik. the reasons are similar to not automatically bringing overloads when you're doing override, and avoiding other "automatic helpers" most of the time: it can quickly get out of control.

Reply via email to