什么是正确的使用方法std::ref?我尝试在VS2010中使用代码并且它不能编译:
#include <vector>
#include <algorithm>
#include <iostream>
#include <functional>
using namespace std;
struct IsEven
{
bool operator()(int n)
{
if(n % 2 == 0)
{
evens.push_back(n);
return false;
}
return true;
}
vector<int> evens;
};
int main(int argc, char **argv)
{
vector<int> v;
for(int i = 0; i < 10; ++i)
{
v.push_back(i);
}
IsEven f;
vector<int>::iterator newEnd = remove_if(v.begin(), v.end(), std::ref(f));
return 0;
}
Run Code Online (Sandbox Code Playgroud)
错误:
c:\ program files(x86)\ microsoft visual studio 10.0\vc\include\xxresult(28):error C2903:'result':symbol既不是类模板也不是函数模板
c:\ program files(x86)\ microsoft visual studio 10.0\vc\include\xxresult(28):错误C2143:语法错误:缺少';' 在'<'之前
还有一些......
| 归档时间: |
|
| 查看次数: |
2720 次 |
| 最近记录: |