On Saturday, 18 July 2015 at 02:23:26 UTC, rcorre wrote:
Is there any reason why implicit conversion from Foo to Thing is permitted in a regular method but not in a constructor?

Trying to figure out whether this is a bug or some sort of constructor-specific safety precaution.

struct Thing {
  Foo foo;
  alias foo this;
}

class Foo { }

class Bar {
  Thing thing;

  void fine() {
    thing = new Foo(); // ok
  }

  this() {
    thing = new Foo(); // nope!
  }
}

I even am not sure how in the world it allows implicit conversion from class to struct in "fine" at all.

Reply via email to