Posso obter o objeto de propriedade de um parâmetro de modelo de função de membro?

Dado um objeto:

struct foo {
    void func();
};

Agora, dada a declaração da função de modelo:

template<typename T, T F>
void bar();

assimbar assumirá uma função de membro da seguinte forma:

bar<decltype(&foo::func), &foo::func>()

No corpo debar Eu quero recuperar o tipofoo deT. Posso fazer isso? Eu quero ser capaz de fazer algo assim:

get_obj<T> myfoo;

(myfoo.*F)();

Eu sei dissoget_obj não é uma coisa, mas haveria uma maneira de escrevê-la?

questionAnswers(2)

yourAnswerToTheQuestion