|
@@ -73,19 +73,19 @@ struct Client1
|
|
|
printf("static Client1::func1 %d\n", w.myAge);
|
|
printf("static Client1::func1 %d\n", w.myAge);
|
|
|
return 3;
|
|
return 3;
|
|
|
}
|
|
}
|
|
|
- static uint8_t func2(pair *p) {
|
|
|
|
|
- myData* v = p->first;
|
|
|
|
|
- myOtherData* w = p->second;
|
|
|
|
|
|
|
+ static uint8_t func2(void* v, void* w) {
|
|
|
|
|
+ myData* x = (myData*) v;
|
|
|
|
|
+ Button* y = (Button*) w;
|
|
|
|
|
|
|
|
- printf("static Client1::func2 %d\n", v->myAge);
|
|
|
|
|
- printf("static Client1::func2 %d\n", w->myAge);
|
|
|
|
|
|
|
+ printf("static Client1::func2 %d\n", x->myAge);
|
|
|
|
|
+ printf("static Client1::func2 %d\n", x->myAge);
|
|
|
return 4;
|
|
return 4;
|
|
|
};
|
|
};
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
auto lambda = [](myData v) { std::cout << "Lambda: " << v.myAge * 2 << std::endl; return 0; };
|
|
auto lambda = [](myData v) { std::cout << "Lambda: " << v.myAge * 2 << std::endl; return 0; };
|
|
|
-
|
|
|
|
|
|
|
+auto lambda2 = [](void* v, void* w) { std::cout << "Lambda: " << std::endl; return 0; };
|
|
|
|
|
|
|
|
class Button {
|
|
class Button {
|
|
|
|
|
|
|
@@ -106,7 +106,7 @@ public:
|
|
|
* https://stackoverflow.com/questions/6458612/c0x-proper-way-to-receive-a-lambda-as-parameter-by-reference
|
|
* https://stackoverflow.com/questions/6458612/c0x-proper-way-to-receive-a-lambda-as-parameter-by-reference
|
|
|
*/
|
|
*/
|
|
|
|
|
|
|
|
- int x = (lambda)(mydata);
|
|
|
|
|
|
|
+ // int x = (lambda)(mydata);
|
|
|
|
|
|
|
|
/*
|
|
/*
|
|
|
*
|
|
*
|
|
@@ -120,6 +120,13 @@ public:
|
|
|
resmap = cbHdl.CallBack_register(CALLBACK_TYPE::B, &c_client_callback);
|
|
resmap = cbHdl.CallBack_register(CALLBACK_TYPE::B, &c_client_callback);
|
|
|
resmap = cbHdl.CallBack_register(CALLBACK_TYPE::C, &Client1::func0);
|
|
resmap = cbHdl.CallBack_register(CALLBACK_TYPE::C, &Client1::func0);
|
|
|
resmap = cbHdl.CallBack_register(CALLBACK_TYPE::D, lambda);
|
|
resmap = cbHdl.CallBack_register(CALLBACK_TYPE::D, lambda);
|
|
|
|
|
+
|
|
|
|
|
+ resmap = cbHdl.CallBack_V_register(CALLBACK_TYPE::D, lambda2);
|
|
|
|
|
+ resmap = cbHdl.CallBack_V_call(CALLBACK_TYPE::D, (void*)&myOtherdata, (void*) nullptr);
|
|
|
|
|
+
|
|
|
|
|
+ resmap = cbHdl.CallBack_V_register(CALLBACK_TYPE::D, &Client1::func2);
|
|
|
|
|
+ resmap = cbHdl.CallBack_V_call(CALLBACK_TYPE::D, (void*) &myOtherdata, (void*) this);
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**********************************************************************************************/
|
|
/**********************************************************************************************/
|