std::for_each,呼吁件功能的基准参数
-
10-07-2019 - |
题
我有一个容器上的指针,我想迭代过,呼吁成员能有一个参数,这是一个参考。怎么做我这么做有STL?
我目前的解决方案是以使用提升::结合,并提高::ref的参数。
// Given:
// void Renderable::render(Graphics& g)
//
// There is a reference, g, in scope with the call to std::for_each
//
std::for_each(
sprites.begin(),
sprites.end(),
boost::bind(&Renderable::render, boost::ref(g), _1)
);
一个相关的问题(从我来我的前的解决方案从的) 提升::绑定功能,具有参数的引用.这具体地询问如何这样做提高。我要怎么会做的 没有 提升。
编辑:有一种方法来这样做同样的事情,而无需使用任何 boost
.通过使用 std::bind
和朋友相同的代码可以被写和汇编C++11兼容的编译器像这样:
std::for_each(
sprites.begin(),
sprites.end(),
std::bind(&Renderable::render, std::placeholders::_1, std::ref(g))
);
解决方案
这是与<functional>
的设计的一个问题。你要么必须使用boost ::绑定或TR1 ::绑定。
不隶属于 StackOverflow