读书人

boost:bind怎么绑定指针的成员

发布时间: 2012-04-26 14:01:31 作者: rapoo

boost::bind如何绑定指针的成员?

C/C++ code
#include<vector>#include<iostream>#include<boost/bind.hpp>using namespace std;struct base{    int k;    void f(){++k;}    base():k(2){}};    struct s{// has a base()    int i;    base m_base;    s():i(3){}};int main(void){    using boost::bind;    const int l=1000;    s* ps=new s[l];    vector<s*> vps;    for(int i=0;i<l;++i){        ps[i].i=1;        vps.push_back(&ps[i]);    }    DWORD ret1=GetTickCount();    std::for_each(vps.begin(),vps.end(),bind(&base::f,bind<s&>(&s::m_base,_1)));//这行编译不过去    DWORD ret2=GetTickCount();    printf("boost::bind = %d\n",ret2-ret1);}


我的问题是在嵌套的bind里面,里层的bind我想返回s*的m_base成员。应该怎么写这个语句呢?
现在这个bind语句有一堆编译错误。


[解决办法]
想法不可行
你的目的是啥?
[解决办法]
C/C++ code
std::for_each(vps.begin(),vps.end(),bind(&base::f,bind(&s::m_base,_1))); 

读书人网 >C++

热点推荐