我有一个容器上的指针,我想迭代过,呼吁成员能有一个参数,这是一个参考。怎么做我这么做有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 ::绑定。

scroll top