멤버 함수에 대한 템플릿 포인터는 어떻게 가져 옵니까? 나는 다음과 같은 유형이 사전에 알려지지 않은 것을 의미 템플릿으로템플릿 템플릿이 아닌 형식의 템플릿 매개 변수를 사용하는 함수 템플릿
:
- 템플릿 PARAM
T
멤버 템플릿 PARAM
- 가변 인자 템플릿 PARAM 포인터의 클래스
Args...
은 매개 변수입니다.
R
는 반환 형식을입니다
문제를 설명하는 데 유용한 코드 :
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