您的位置:首页 > 其它

bind1st/bind2nd与mem_fun组合使用的问题

2012-03-18 16:44 393 查看


[code]bind1st(mem_fun1<void, queue<char>, const char &>(&queue<char>::push), &queIndexes);

[/code]

这种把bind1st/bind2nd与mem_fun等组合使用编译通不过的解决方法:


std::bind1st and std::bind2nd don't accept functors which take reference arguments, because they themselves form references to these arguments. You can

use pointers for your function inputs instead of references

use boost::bind

accept the performance cost of copying the string



是因为


The issue is a defect in the library specification.

Take a look at this bug report against gcc and the resulting discussion: Bug 37811 - bind1st fails on mem_fun with reference argument

C++03 lacked the facilities to build a perfect bind library. This issue is fixed in C++11 with perfect forwarding and std::bind.

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: