Это продолжение этой проблемы: Общий функтор для функций с любым списком аргументов
У меня есть этот класс функтора (полный код см. ссылку выше):
template<typename... ARGS>
class Foo
{
std::function<void(ARGS...)> m_f;
public:
Foo( std::function<void(ARGS...)> f ) : m_f(f) {}
void operator()(ARGS... args) const { m_f(args...); }
};
В operator() я могу легко получить доступ к args... с рекурсивной функцией "отслаивания", как описано здесь http://www2.research.att.com/~bs/C++0xFAQ.html#variadic-templates
Моя проблема: я хочу получить доступ к типам аргументов f, то есть ARGS..., в конструкторе. Очевидно, я не могу получить доступ к значениям, потому что их пока нет, но список типов аргументов каким-то образом заштрихован в f, не так ли?