2012-06-22 4 views
2

밀어 넣기 정렬 또는 필터 호출에서 자리 표시자를 펑터로 사용할 때 멤버 변수에 액세스하는 방법은 무엇입니까? 예를 들어, 오류 "thrust::detail::functional::actor<thrust::detail::functional::argument<0U>>" has no member "fInf"밀어 넣기 자리 표시 자 : 멤버 변수에 액세스하는 방법

가 어떻게 그것이 람다 함수를 사용하여 작성합니다

thrust::remove_if(ms.begin(), ms.end(), _1.fInf > global_min) 

을 생산하고 다음? operator()를 사용하여 작동하는 struct functor가 있는데, 저는 더 우아한 방법을 찾고 있습니다.

답변

2

아쉽게도 자리 표시자를 통해 인수 멤버에 액세스 할 수 없습니다. 자리 표시 자 표현은 산술을위한 것입니다.

인수 구성원에 액세스해야하는 경우 사용자 정의 함수기를 사용해야합니다. 컴파일러가 지원하는 경우 람다 식을 사용할 수도 있습니다.