#include <iostream>
struct test
{
test(int x)
: a(get_b()),
b(x)
{ }
int get_a() { return a; }
int get_b() { return b; }
int a;
int b;
};
int main()
{
constexpr int expected = 3;
test t = expected;
if(t.get_a() != expected) {
std::cout << "Expected " << expected << ", but got " << t.get_a() << std::endl;
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RydWN0IHRlc3QKewogIHRlc3QoaW50IHgpCiAgICA6IGEoZ2V0X2IoKSksCiAgICAgIGIoeCkKICB7IH0KCiAgaW50IGdldF9hKCkgeyByZXR1cm4gYTsgfQogIGludCBnZXRfYigpIHsgcmV0dXJuIGI7IH0KCiAgaW50IGE7CiAgaW50IGI7Cn07CgppbnQgbWFpbigpCnsKICBjb25zdGV4cHIgaW50IGV4cGVjdGVkID0gMzsKCiAgdGVzdCB0ID0gZXhwZWN0ZWQ7CgogIGlmKHQuZ2V0X2EoKSAhPSBleHBlY3RlZCkgewogICAgc3RkOjpjb3V0IDw8ICJFeHBlY3RlZCAiIDw8IGV4cGVjdGVkIDw8ICIsIGJ1dCBnb3QgIiA8PCB0LmdldF9hKCkgPDwgc3RkOjplbmRsOwogIH0KfQo=