gcc 11.x fixes
[src/app-framework-binder.git] / include / afb / c++ / binding-wrap.hpp
index a998469..b798cf1 100644 (file)
@@ -21,6 +21,7 @@
 #include <cstdlib>
 #include <cstdarg>
 #include <functional>
+#include <string>
 
 /* ensure version */
 #ifndef AFB_BINDING_VERSION
@@ -299,6 +300,7 @@ public:
                friend class req;
                afb_req_t req_;
                contextclass(afb_req_t r) : req_(r) {}
+               static void default_destroyer(T*t) { delete t; }
 
        public:
                inline operator T *() const { return get(); }
@@ -311,7 +313,7 @@ public:
                                        nullptr));
                }
 
-               inline void set(T *value, void (*destroyer)(T*) = [](T*t){delete t;}) const {
+               inline void set(T *value, void (*destroyer)(T*) = default_destroyer) const {
                        afb_req_context(req_, 1,
                                nullptr,
                                reinterpret_cast<void(*)(void*)>(destroyer),
@@ -782,7 +784,7 @@ constexpr afb_verb_t verb(
                session,
                auth,
                glob,
-               (void*)(&callback)
+               *(void**)(&callback)
        );
 }