#include <functional>
#include <iostream>
struct Y;
struct X
{
X();
std::function<bool(Y&)> b;
bool a{false};
};
struct Y
{
Y();
std::function<bool(X&)> b{[] (auto& x_) { return x_.a; }};
bool a{true};
};
X::X() : b([] (auto& y_) { return y_.a; }) {}
Y::Y() : b([] (auto& x_) { return x_.a; }) {}
int main()
{
return 0;
}
I2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiNpbmNsdWRlIDxpb3N0cmVhbT4KCnN0cnVjdCBZOwoKc3RydWN0IFgKewoJWCgpOwoJc3RkOjpmdW5jdGlvbjxib29sKFkmKT4gYjsKCQoJYm9vbCBhe2ZhbHNlfTsKfTsKCnN0cnVjdCBZCnsKCVkoKTsKCXN0ZDo6ZnVuY3Rpb248Ym9vbChYJik+IGJ7W10gKGF1dG8mIHhfKSB7IHJldHVybiB4Xy5hOyB9fTsKCQoJYm9vbCBhe3RydWV9Owp9OwoKWDo6WCgpIDogYihbXSAoYXV0byYgeV8pIHsgcmV0dXJuIHlfLmE7IH0pIHt9Clk6OlkoKSA6IGIoW10gKGF1dG8mIHhfKSB7IHJldHVybiB4Xy5hOyB9KSB7fQoKaW50IG1haW4oKQp7CglyZXR1cm4gMDsKfQoK