gpt4 book ai didi

c++ - std::foreach 与 boost::bind

转载 作者:太空狗 更新时间:2023-10-29 19:40:58 24 4
gpt4 key购买 nike

这有什么问题:

template <typename T>
std::list<T> & operator+=(std::list<T> & first, std::list<T> const& second)
{
std::for_each(second.begin(), second.end(), boost::bind(&std::list<T>::push_back, first, _1));

return first;
}

它编译正常,但不起作用。

最佳答案

您需要使用 boost::ref 通过引用传递参数/对象,否则 bind 会创建一个内部拷贝。

std::for_each(
second.begin(), second.end(),
boost::bind(&std::list<T>::push_back, boost::ref(first), _1)
);

关于c++ - std::foreach 与 boost::bind,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6083599/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com