class A{};
class B : public A {};
class C : public A {};

int foo( int i ) {
    // これがうまくいくのに
    A* p2 = i > 1 ? new B() : new A();

    // なんでこれはコンパイルエラーなの?
    A* p1 = i > 1 ? new B() : new C();
}
~