Не уверен, что понимаю, что вы хотите, и не совсем бесплатную функцию (но статический метод в классе шаблона), но я предполагаю, что вы запрашиваете что-то похожее, как показано ниже
template <typename>
struct proFunc;
template <template <typename ...> class C, typename ... Ts>
struct proFunc<C<Ts...>>
{
static void func (Ts ...)
{ }
};
что вы можете использовать этот способ
using ArgsTuple = std::tuple<int, float>;
proFunc<ArgsTuple>::func(1, 2.f);
и вы также можете проверить, что
static_assert( std::is_same<decltype(&proFunc<ArgsTuple>::func),
void(*)(int, float)>::value, "!" );
Чтобы получить что-то более похожее на бесплатную функцию, вы можете использовать указатели на функции
auto funcPnt = &proFunc<ArgsTuple>::func;
funcPnt(3, 4.f);