c – 如何使用std :: ref?

前端之家收集整理的这篇文章主要介绍了c – 如何使用std :: ref?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
使用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;
}

错误

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 ‘<‘

再加一些…

解决方法

在Visual C 10.0执行std :: ref中有一个错误或一组错误.

据报导,Visual C 11已被修复;看我的earlier question about it.

微软的STL回答说:“我们已经解决了这个问题,修复程序将在VC11 RTM中提供(但是,修复程序没有进入VC11 Beta版本).”

原文链接:https://www.f2er.com/c/112641.html

猜你在找的C&C++相关文章