Como passar uma função de modelo em uma lista de argumentos de modelo
Suponha que eu tenha umtemplate
função:
template<typename T>
T produce_5_function() { return T(5); }
Como posso passar isso todotemplate
para outrotemplate
?
E seproduce_5_function
era um functor, não haveria problema:
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 >()();
mas eu quero poder fazer isso com um template de função raw:
template<??? F>
struct client_template {
int operator()() const { return F<int>(); }
};
int five = client_template< produce_5_function >()();
Eu suspeito que a resposta é "você não pode fazer isso".