我正在使用 MSVC 2012,当我编译下面的程序时,它说:
该术语不会评估为采用 0 个参数的函数
我确信问题出在mem_fun
andmem_fun_ref
函数调用上。请提供调用函数的正确方法。
#include<iostream>
#include<algorithm>
#include<functional>
#include<string>
#include<vector>
#include<iterator>
using namespace std;
#define PRINT(A, Sp) copy(A.begin(), A.end(), ostream_iterator<decltype(*A.begin())>(cout, Sp))
struct Generate {
int a;
Generate(int a) : a(a) {
}
Generate gen() {
return Generate(rand()%100);
}
void testing() {
vector<Generate> a(5), b, c;
generate(a.begin(), a.end(), mem_fun(&Generate::gen));
generate_n(back_inserter(b), 5, mem_fun_ref(&Generate::gen));
}
};
void main() {
Generate a(32);
a.testing();
}