#include template< typename ... Args, typename E = typename std::enable_if<(sizeof...(Args) >= 1), bool>::type > void fun1(Args&& ... args) { } template< typename ... Args, typename E = typename std::enable_if<(sizeof...(Args) > 1), bool>::type > void fun2(Args&& ... args) { } template< typename ... Args, typename E = typename std::enable_if<(sizeof...(Args) < 3), bool>::type > void fun3(Args&& ... args) { }