Как передать функцию шаблона в список аргументов шаблона

Предположим, у меня естьtemplate функция:

template<typename T>
T produce_5_function() { return T(5); }

Как я могу передать все этоtemplate другомуtemplate?

Еслиproduce_5_function был функтором, не было бы проблем:

template<typename T>
struct produce_5_functor {
  T operator()() const { return T(5); }
};
template<template<typename T>class F>
struct client_template {
  int operator()() const { return F<int>()(); }
};
int five = client_template< produce_5_functor >()();

но я хочу быть в состоянии сделать это с помощью необработанного шаблона функции:

template<??? F>
struct client_template {
  int operator()() const { return F<int>(); }
};
int five = client_template< produce_5_function >()();

Я подозреваю, что ответ "вы не можете сделать это".

Ответы на вопрос(2)

Ваш ответ на вопрос