템플릿 인자가있는 함수를 다른 함수에 어떻게 전달합니까?
template <class _T>
void inc(int &x) {
x++;
}
template <class FUNC>
void add(int &x, FUNC f) {
f(x);
}
int main() {
int x = 0;
add(x, inc);
return 0;
}
그래서 "오류 : 'add'호출에 일치하는 함수가 없습니다."라는 메시지가 표시됩니다.
inc
함수가 아니라 템플릿입니다. 통과해야합니다 inc<int>
:
template <class _T>
void inc(int &x) {
x++;
}
template <class FUNC>
void add(int &x, FUNC f) {
f(x);
}
int main() {
int x = 0;
add(x, inc<int>);
return 0;
}
( f
추가 대신 메인 함수에서 오타를 호출하는 문제 를 수정했습니다 .)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다