1
#include <vector>
#include <iostream>
#include "boost/function.hpp"
template <class T1, class T2, class T3>
static void
FOREACH (T1 cont, boost::function<T2(T3)> callback) {
typename T1::iterator it = cont. begin();
for (; it != cont. end(); it++) {
callback (*it);
}
}
static void
Print (int number)
{
std:: cout << number << std:: endl;
}
int main()
{
std:: vector<int> vec;
for (int i=1; i <= 10; ++i) vec. push_back (2*i);
FOREACH (vec, fun);
return 0;
}
위의 코드가 컴파일되지 않는 이유는 무엇입니까? 아래와 같이 특수화 된 버전을 만들면 정상적으로 작동합니다.함수 템플릿이있는 boost :: function
static void
FOREACH (std:: vector<int> cont, boost::function<void(int)> callback) {
std:: vector<int>:: iterator it = cont. begin();
for (; it != cont. end(); it++) {
callback (*it);
}
}
기능 템플릿을 사용하여 boost :: function을 어떻게 사용할 수 있습니까?
'재미'가 선언되지 않았음에도 도움이되지 않습니다. – juanchopanza
'재미'는 오타가 의도적으로 '인쇄' –