struct B
{
  int i;
  bool operator==(int b)
  {
    return i == b;
  }
};

struct A
{
  int i;
  operator B() const
  {
    B b;
    b.i = i;
    return b;
  }
};

int main()
{
  A a;
  a.i = 10;
  assert(a.operator B() == 10);
}
