c bind 繫結類中的方法

2021-08-09 08:40:37 字數 538 閱讀 3401

今天在使用find_if 與 bind 的時候,遇到了一些問題。在網上找到的例子中繫結的方法是全域性的,格式是這樣的:

vectorvec;

//略去vecotr push_back 操作......

find_if(vec.begin(),vec.end(),bind(函式,引數或placeholders));

但是我在類裡面按照這種格式寫的時候出現了如下錯誤:

錯誤c2672「operator __surrogate_func」: 未找到匹配的過載函式

錯誤c2893未能使函式模板「unknown-type std::_binder&,uint &>::operator ()(_unbound &&...) const」專用化

解決辦法是在繫結的函式後新增乙個*this ,之後再寫引數與placeholders

std::find_if(pcb_table.begin(), pcb_table.end(), bind(&pcb_pool::isfindpcbid, *this , placeholders::_1, pcb_id));

Python中繫結與未繫結的類方法

像函式一樣,python中的類方法也是一種物件。由於既可以通過例項也可以通過類來訪問方法,所以在python裡有兩種風格 未繫結的類方法 沒有self 通過類來引用方法返回乙個未繫結方法物件。要呼叫它,你必須顯示地提供乙個例項作為第乙個引數。繫結的例項方法 有self 通過例項訪問方法返回乙個繫結的...

python類的繫結方法與非繫結方法

一 繫結方法 首先我們明確乙個知識點,凡是類中的方法或函式,預設情況下都是繫結給物件使用的。下面,我們通過例項,來慢慢解析繫結方法的應用。class people def init self,name,age self.name name self.age age deftalk self pass...

python 類的繫結方法和非繫結方法

首先我們明確乙個知識點,凡是類中的方法或函式,預設情況下都是繫結給物件使用的。下面,我們通過例項,來慢慢解析繫結方法的應用。class people def init self,name,age self.name name self.age age def talk self pass p peo...