如何將模板指針指向成員函數?以模板非模板參數爲函數模板
通過模板我的意思是以下類型事先不知道:
- 模板PARAM
T
是類指針的成員 - 模板PARAM
R
是返回類型 - 可變參數模板PARAM
Args...
是參數
說明問題的非工作代碼:
template <???>
void pmf_tparam() {}
// this works, but it's a function parameter, not a template parameter
template <class T, typename R, typename... Args>
void pmf_param(R (T::*pmf)(Args...)) {}
struct A {
void f(int) {}
};
int main() {
pmf_tparam<&A::f>(); // What I'm looking for
pmf_param(&A::f); // This works but that's not what I'm looking for
return 0;
}
是否有可能在C++ 11中實現所需的行爲?
你需要這是一個真正的功能?我已經離開了C++遊戲一段時間了,但是如果你讓你的函數成爲一個類並且重寫'operator()'以便它看起來像一個函數一樣工作呢? – Falmarri