나는 boost :: lambda를 사용하는 방법을 배우고있다. 내가 가진 한 가지 질문은 멤버 함수 호출에 관한 것입니다. 테스트 일 뿐이므로 boost :: lambda를 사용하여이 작업을 수행하고 싶습니다. 분명히 한 컨테이너에서 다른 컨테이너로 요소를 복사하는 방법은 50 만 가지가 있기 때문입니다.boost :: lambda를 사용하여 컨테이너 복사하기
I 3 개 요소가있는 list<int>
있습니다
std::list<int> a;
a.push_back(2);
a.push_back(3);
a.push_back(4);
을 그리고 vector<int>
:에 다시의 각 요소에 대해, 밀어 :
vector<int> b;
내가이 다음을 수행하려고 해요 비. 여기 내 샷이다 :
std::for_each(a.begin(), a.end(), (b ->* (&std::vector<int>::push_back))(_1));
문제는이 멤버 함수 호출, 이야기를 수락하지 점이다 : 나는 다른 방법을 시도하지만,이 중 하나가 작동하지 않았다
no match for ‘operator->*’ in ‘b ->* &std::vector<int, std::allocator<int> >::push_back’
.
미리 감사드립니다.
bind를 사용하려했지만 잘못되었습니다. 감사! – Gabriel