Ahojte dá sa nejako skonvertovať?
using HttpCallback = std::function<void(HTTPRequest*, HTTPResponse*)>
using HttpCallbackPtr = void(*)(HTTPRequest*, HTTPResponse*)
Potreboval by som použiť lambdu na mieste kde sa dá použiť len klasická funkcia. Objavil som síce spôsob ako to skonvertovať cez std::function.target<>, ale ten by mal fungovať len so zapnutým RTTI, lenže zo zapnutým RTTI, mi zaser linker hádže chybu ako som uviedol v predchádzajúcom diskusnom threade:
https://forum.root.cz/index.php?topic=24918.0Takže by som potreboval buď rozbehnúť kompiláciu s RTTI, alebo nájsť iný spôsob ako skonvertovať std::function
Tuná je úrivok kódu:
using HttpCallbackPtr = void(*)(HTTPRequest*, HTTPResponse*);
using HttpCallback = std::function<void(HTTPRequest*, HTTPResponse*)>;
void registerRoutes()
{
HttpCallback httpCallback = [](HTTPRequest* request, HTTPResponse* response) -> void {
};
auto callbackPtr = httpCallback.target<HttpCallbackPtr>();
server->registerNode(new ResourceNode("/", "GET", *callbackPtr));