#include <iostream>
#include <type_traits>
template <typename T>
struct A {
int val = 0;
template<size_t N,
typename U = T,
typename = std::enable_if_t<sizeof(U)>
>
A(int (&ar)[N]) {};
A(){}
};
struct YES {};
struct NO;
int main() {
int a[10];
A<YES> y(a);
A<NO> n;
std::cout << "YES: " << y.val << std::endl
<< "NO: " << n.val << std::endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dHlwZV90cmFpdHM+Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4Kc3RydWN0IEEgewogICAgaW50IHZhbCA9IDA7CgogICAgdGVtcGxhdGU8c2l6ZV90IE4sCiAgICAgICAgICAgICB0eXBlbmFtZSBVID0gVCwKICAgICAgICAgICAgIHR5cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDxzaXplb2YoVSk+CiAgICAgICAgICAgID4KICAgIEEoaW50ICgmYXIpW05dKSB7fTsKICAgIAogICAgQSgpe30KfTsKCnN0cnVjdCBZRVMge307CnN0cnVjdCBOTzsKCmludCBtYWluKCkgewoJaW50IGFbMTBdOwogICAgQTxZRVM+IHkoYSk7CiAgICBBPE5PPiBuOwogICAgc3RkOjpjb3V0IDw8ICJZRVM6ICIgPDwgeS52YWwgPDwgc3RkOjplbmRsCiAgICAgICAgICAgICAgPDwgIk5POiAgIiA8PCBuLnZhbCA8PCBzdGQ6OmVuZGw7Cn0=