Dedução da função

Digamos que temos um modelo de classe como este:

template<typename F>
class A
{
public:
  template<typename... Args>
  A(F f, Args... args)
  { /* Do something... */ }
};

E agora eu quero usá-lo de alguma forma como esta:

A<int(int)> a(::close, 1);

Agora a pergunta: existe alguma maneira de omitir o<int(int)> porque um compilador pode conhecer essas informações para o::close? Não há necessidade de salvar o "design" do modelo.

Quanto à tarefa concreta, preciso criar um modelo de classe. Objetos dessa classe podem receber uma função e parâmetros para esta função no tempo de construção e chamar essa função posteriormente.

questionAnswers(3)

yourAnswerToTheQuestion