CC CALLBACK之間的區別

2022-05-09 07:21:08 字數 1116 閱讀 5260

#define cc_callback_0(__selector__,__target__, ...) std::bind(&__selector__,__target__, ##__va_args__)

#define cc_callback_1(__selector__,__target__, ...) std::bind(&__selector__,__target__, std::placeholders::_1, ##__va_args__)

#define cc_callback_2(__selector__,__target__, ...) std::bind(&__selector__,__target__, std::placeholders::_1, std::placeholders::_2, ##__va_args__)

#define cc_callback_3(__selector__,__target__, ...) std::bind(&__selector__,__target__, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, ##__va_args__)

①__selector__:繫結要**的函式名,注意要加上命名空間:函式名

②__target__:繫結乙個物件

③std::placeholders::_1:繫結的函式裡除了第乙個引數之外的引數,就是呼叫函式傳參時要傳第乙個引數,如果_selector_後面有引數,則在用cc_callback時要繫結

④std::placeholders::_2:依次類推

cc_callback的作用是讓_target_物件用_selector_函式時繫結第0/1/2/3個引數後面引數的值,例如

int add (int i, int

j)auto func = cc_calllback_1(add, this, 10);

這時得到的func就相當與func(int i, intj = 10),用的時候可以用func(15),

cout << func(15) << endl; //

結果是15 + 10 = 25,即cout << 25

ERP CRM eHR OA之間的區別

erp crm ehr oa都屬於企業管理軟體範疇,用於通過資訊化手段幫助企業管理人員管理企業,提高管理職能,提公升工作效率。以下為幾類企業管理軟體的核心管理內容 1 oa 主要是管理業務流程審批和企業內部行政辦公事務,通過靈活的審批流程實現無紙化辦公,如 請假單的發放 派車單的發放 公司通告的發放...

TCP UDP HTTP之間的區別

http 是用於www瀏覽的乙個協議。tcp 是機器之間建立連線用的到的乙個協議。1 tcp ip是個協議組,可分為三個層次 網路層 傳輸層和應用層。在網路層有ip協議 icmp協議 arp協議 rarp協議和bootp協議。在傳輸層中有tcp協議與udp協議。在應用層有ftp http telne...

List Set Map 之間的區別

1.可重複。2.可以為空。3.有序容器,保持了每個元素的插入順序,輸出的順序就是插入的順序。常用的實現類有 arraylist linkedlist 和 vector。arraylist 最為流行,它提供了使用索引的隨意訪問,而 linkedlist 則對於經常需要從 list 中新增或刪除元素的場...