문제

반복하고 싶은 포인터 컨테이너가 있으며 참조 인 매개 변수가있는 멤버 함수를 호출합니다. STL로 어떻게해야합니까?

현재 솔루션은 Boost :: Bind, Boost :: 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 :: bind 또는 tr1 :: bind를 사용해야합니다.

다른 팁

체크 아웃 매개 변수/수정으로 std :: foreach를 사용하는 방법. 질문은 for 루프를 사용하여 수행하는 방법을 보여줍니다. 허용 된 답변은 for_each 알고리즘으로이를 달성하는 방법의 예를 제공합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top