#include <iostream>
#include <type_traits>
template<typename T, typename = void>
struct Test
{
static int constexpr value = 1;
};
template<typename T>
struct Test
<
typename std::enable_if
<
std::is_integral<T>::value,
T
>::type, T
>
{
static int constexpr value = 2;
};
int main()
{
std::cout << Test<short>::value << std::endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dHlwZV90cmFpdHM+Cgp0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSA9IHZvaWQ+CnN0cnVjdCBUZXN0CnsKCXN0YXRpYyBpbnQgY29uc3RleHByIHZhbHVlID0gMTsKfTsKdGVtcGxhdGU8dHlwZW5hbWUgVD4Kc3RydWN0IFRlc3QKPAoJdHlwZW5hbWUgc3RkOjplbmFibGVfaWYKCTwKCQlzdGQ6OmlzX2ludGVncmFsPFQ+Ojp2YWx1ZSwKCQlUCgk+Ojp0eXBlLCBUCj4KewoJc3RhdGljIGludCBjb25zdGV4cHIgdmFsdWUgPSAyOwp9OwoKaW50IG1haW4oKQp7CglzdGQ6OmNvdXQgPDwgVGVzdDxzaG9ydD46OnZhbHVlIDw8IHN0ZDo6ZW5kbDsKfQo=