#include <iostream>

struct A
{
 A(int i) { throw i; }
};

struct B
{
 const A a;
 B() try : a(0) {
 }
 catch (int i) {
  std::cout << i << std::endl;
 }
};

int main()
{
 try {
  B b;
 }
 catch (int i) {
  return i;
 }
 return 0;
}

これで通った(gcc3.3.1)