#include <iostream>
#include <assert.h>
using namespace std;
struct A {
A() { assert(false); }
A(int a) { cout << "A=" << a << endl; }
};
struct B : virtual A {
B(int a) {}
};
struct C : virtual A {
C(int a) : A(a) {}
};
struct Hoge : B, C {
Hoge() : B(1), C(2), A(3) {}
};
int main(int ac, char* av[]) {
Hoge hoge;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YXNzZXJ0Lmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IEEgewogICAgICAgIEEoKSB7IGFzc2VydChmYWxzZSk7IH0KCUEoaW50IGEpIHsgY291dCA8PCAiQT0iIDw8IGEgPDwgZW5kbDsgfQp9OwpzdHJ1Y3QgQiA6IHZpcnR1YWwgQSB7CglCKGludCBhKSAge30KfTsKc3RydWN0IEMgOiB2aXJ0dWFsIEEgewoJQyhpbnQgYSkgOiBBKGEpIHt9Cn07CgpzdHJ1Y3QgSG9nZSA6IEIsIEMgewoJSG9nZSgpIDogQigxKSwgQygyKSwgIEEoMykge30KfTsKCmludCBtYWluKGludCBhYywgY2hhciogYXZbXSkgewoJSG9nZSBob2dlOwoJcmV0dXJuIDA7Cn0K