首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-04-26 
boost::bind如何绑定指针的成员?C/C++ code#includevector#includeiostream#includeboost/bind.hppu

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))); 

热点排行