int Ac = 0, Ad = 0;

struct A
{
  A( bool b )
    : b ( b )
  { Ac++; }

  operator bool() { return b; }

  ~A() { Ad++; }

  bool b;
};

int main()
{
  for (int i = 0; A a = (i < 2); i++)
  {
    if (Ac != (Ad + 1)) return 1;

    if(i >= 2)
    {
      return 1;
    }
  }
  if (!(Ac == 3 && Ad == 3)) return 1;
  int a = 0;

  return 0;
}
