I do not know if I am missing something but consider:

struct Foo {
  int r;
  int i;
  bool get() {
    return true;  // always return true
  }
  alias get this;
}

So I am wondering how it would be possible to construct Foo from a bool?
Otherwise how would the compiler be able to figure out in what scenarios reverse conversion is possible and is intended.

Regards
- Puneet