#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;
}
