如何多次正确交换std :: function?

时间:2015-12-08 22:35:35

标签: c++ std-function

下面的代码试图交换一些std :: function变量但是失败了。特别是next_read_ 接受其他值已初始化为。

如何以next_index_path_empty_以及read_和{{1}交换的方式更改此仿函数}}?目标是通过所有私人方法。

next

1 个答案:

答案 0 :(得分:1)

问题在于您将envs对象传递给std::for_each函数的方式。因为它被复制,this对象中的bind指针也被复制,这基本上意味着你正在操作其他对象中的方法。

更换:

Envs envs;
std::for_each(args.begin(),args.end(),envs);

使用:

std::for_each(args.begin(),args.end(), Envs());

应该有所帮助。