2012-06-22 69 views
2

在使用佔位符作爲推子排序或過濾器調用中的函數時,如何訪問成員變量?例如,下面的推力佔位符:如何訪問成員變量

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

產生錯誤使用lambda函數它 "thrust::detail::functional::actor<thrust::detail::functional::argument<0U>>" has no member "fInf"

我怎麼會寫?我有一個運算符()的工作結構函子,我只是尋找一個更優雅的方式。

回答

2

不幸的是,您無法通過佔位符訪問參數成員。佔位符表達式用於算術。

如果您需要訪問參數的成員,則需要使用用戶定義的函子。如果你的編譯器支持它,你也可以使用lambda表達式。