#include <iostream>
#include <type_traits>

template<typename T, typename...> struct require { using type = T; };
template<typename... Args> void ignore(Args const &...){}

template<typename... Ints>
auto f(Ints... x) -> typename require<void, typename std::enable_if<std::is_convertible<Ints, int>::value>::type...>::type
{
	ignore((std::cout << x << std::endl)...);
}

int main()
{
	f(1);
	f(2, 3);
}
