#include <iostream>
#include <type_traits>
typedef struct {} Foo;
int main() {
std::cout
<< std::is_assignable<int, int>::value
<< std::is_assignable<int&, int>::value
<< std::is_assignable<Foo, Foo>::value
<< std::is_assignable<Foo&, Foo>::value
<< std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dHlwZV90cmFpdHM+CnR5cGVkZWYgc3RydWN0IHt9IEZvbzsKaW50IG1haW4oKSB7CglzdGQ6OmNvdXQKCSAgICA8PCBzdGQ6OmlzX2Fzc2lnbmFibGU8aW50LCBpbnQ+Ojp2YWx1ZQoJICAgIDw8IHN0ZDo6aXNfYXNzaWduYWJsZTxpbnQmLCBpbnQ+Ojp2YWx1ZQoJICAgIDw8IHN0ZDo6aXNfYXNzaWduYWJsZTxGb28sIEZvbz46OnZhbHVlCgkgICAgPDwgc3RkOjppc19hc3NpZ25hYmxlPEZvbyYsIEZvbz46OnZhbHVlCgkgICAgPDwgc3RkOjplbmRsOwoJcmV0dXJuIDA7Cn0=