使用std :: ref的正确方法是什么?我尝试以下代码在VS2010,它不编译:
#include
#include
#include
#include
using namespace std;
struct IsEven
{
bool operator()(int n)
{
if(n % 2 == 0)
{
evens.push_back(n);
return false;
}
return true;
}
vector evens;
};
int main(int argc,char **argv)
{
vector v;
for(int i = 0; i < 10; ++i)
{
v.push_back(i);
}
IsEven f;
vector::iterator newEnd = remove_if(v.begin(),v.end(),std::ref(f));
return 0;
}
c:\program files (x86)\microsoft visual studio
10.0\vc\include\xxresult(28): error C2903: ‘result’ : symbol is neither a class template nor a function template
c:\program files (x86)\microsoft visual studio
10.0\vc\include\xxresult(28): error C2143: Syntax error : missing ‘;’ before ‘
再加一些…