#include <iostream>
#include <type_traits>
template <typename T, T N, typename = void >
struct X {
static const bool isZero = false;
};
template <typename T, T N>
struct X < T, N, typename std::enable_if<N == 0>::type > {
static const bool isZero = true;
};
int main(int argc, char* argv[]) {
std::cout << X <int, 0>::isZero << std::endl;
std::cout << X <int, 1>::isZero << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dHlwZV90cmFpdHM+Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgVCBOLCB0eXBlbmFtZSA9IHZvaWQgPiAKc3RydWN0IFggewogIHN0YXRpYyBjb25zdCBib29sIGlzWmVybyA9IGZhbHNlOwp9OwoKdGVtcGxhdGUgPHR5cGVuYW1lIFQsIFQgTj4Kc3RydWN0IFggPCBULCBOLCB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjxOID09IDA+Ojp0eXBlID4gewogIHN0YXRpYyBjb25zdCBib29sIGlzWmVybyA9IHRydWU7Cn07CgppbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKSB7CiAgICBzdGQ6OmNvdXQgPDwgWCA8aW50LCAwPjo6aXNaZXJvIDw8IHN0ZDo6ZW5kbDsKICAgIHN0ZDo6Y291dCA8PCBYIDxpbnQsIDE+Ojppc1plcm8gPDwgc3RkOjplbmRsOwogICAgcmV0dXJuIDA7Cn0=