C++ Conversion to Reference
===

Given the following code (in GCC 4.3) , why is the conversion to reference called twice?

    class A { }

    class B {
    public:
      operator A() {}
      operator A&() {}
    }

    int main() {
      B b;
      (A) b;
      (A&) b;
    }