请教一个关于BOOST中bind 与 tuple 的问题

fengchang 2007-04-18 11:34:45
typedef boost::tuples::tuple<int,string,string> person;
person p1(30,"feng","chang");
boost::bind(person::get<0>,_1)(p1);

如上代码,如何才能编译通过啊,谢谢(vc2003)
...全文
278 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
Oversense 2007-04-19
  • 打赏
  • 举报
回复
后来,就没有后来了。。。多谢关心
yutaooo 2007-04-19
  • 打赏
  • 举报
回复
步步文 真坏.起哄啊!对了, 你是上次接外包项目被坑的吗人吗?后来怎么样啦?

fengchang (everate) 顶你一下,认真求知的态度,学习!

向taodm的技术表示赞叹,对taodm态度表示不赞叹.
WinWing 2007-04-19
  • 打赏
  • 举报
回复
看taodm大哥的回复想笑,呵呵
Oversense 2007-04-19
  • 打赏
  • 举报
回复
taodm 胜出

要 cast

taodm 2007-04-19
  • 打赏
  • 举报
回复
如果你要问VC怎么个不符合标准,是没办法给答案的。
你如果想知道要如何编译过代码,就多认真看看boost的文档
里面有这样的例子:
void foo(int);
void foo(float);
int i;
...
bind(&foo, _1)(i); // error
...
void (*pf1)(int) = &foo;
bind(pf1, _1)(i); // ok
bind(static_cast<void(*)(int)>(&foo), _1)(i); // ok

fengchang 2007-04-19
  • 打赏
  • 举报
回复
taodm您别急,总归问问题的想知道答案啊,您这一句不符合标准也太宽泛了。我还是不知道答案啊。
proxiaobai 2007-04-19
  • 打赏
  • 举报
回复
boost::bind(person::get<0>,_1)(p1);
tuples应该相当于std::pair的作用吧
person::get<0>你认为一定是返回函数一个person的形参为空的成员函数指针吗?
taodm 2007-04-19
  • 打赏
  • 举报
回复
和你真绕口,VC编译器不符合标准。
fengchang 2007-04-19
  • 打赏
  • 举报
回复
那为什么tracer的那段代码可以编译通过,谢谢
taodm 2007-04-19
  • 打赏
  • 举报
回复
见我最开始的回答。
fengchang 2007-04-19
  • 打赏
  • 举报
回复
具体点呢?谢谢
taodm 2007-04-19
  • 打赏
  • 举报
回复
VC编译器不符合标准。
fengchang 2007-04-19
  • 打赏
  • 举报
回复
哪段代码,具体哪里不复合标志了。这样指明了,我可自己对照标志阅读。
taodm 2007-04-19
  • 打赏
  • 举报
回复
VC不符合标准。
fengchang 2007-04-19
  • 打赏
  • 举报
回复
taodm能不能说的具体点呢,以利于进一步自身提升。
您的意思是trace的调用那个代码片断不复合c++标准?
taodm 2007-04-19
  • 打赏
  • 举报
回复
VC的编译器是有些问题的。我只能告诉你根据C++标准你需要做什么。
fengchang 2007-04-19
  • 打赏
  • 举报
回复
请教高人啊,自己顶一下
fengchang 2007-04-18
  • 打赏
  • 举报
回复
class trace
void print(const std::string& s) const {
std::cout <<"const"<<s<< '\n';
}
void print(const std::string& s)
{
std::cout <<s<< '\n';
}
}
trace t;
bind(trace::print,_1,_2)(t,"ok");
怎么就可以编译通过呢?
taodm 2007-04-18
  • 打赏
  • 举报
回复
因为get有const和非const 2个重载版本。得先static_cast指针转换以获取正确的版本。
建议你就别用bind了。

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧