Рассмотрим следующий список:C++ - Восстановление шаблона или отливать в шаблон
#include <iostream>
#include <typeinfo>
class Interface { };
template<typename T>
class Class : public Interface { };
template<typename T>
Interface *producer() {
std::cout << "produced " << typeid(T).name();
return new Class<T>();
}
template<typename T>
void consumer(Class<T> *class_value) {
std::cout << "consumed " << typeid(T).name();
}
void mediator(Interface *value) {
/* The magic happens here */
consumer(class_value);
}
int main() {
Interface *value = producer<int>();
mediator(value);
}
есть ли возможный способ назвать «потребителя» шаблонную функцию из функции «посредника»?