http://ideone.com/5MHVzのコードを使用し て、ラムダ関数 (インライン) を C スタイルの関数ポインターにバインドできる方法に興味がありますが、状態がなくてもクラス関数でこれを行うことはできません関与。それはいくつかの根本的な違いであるに違いありませんが、この場合にラムダバインディングがどのように可能であるかがわかりません(ラムダ生成コードへの概念的な this もあります)。回避策はありますか?
以下のコード:
#include <iostream>
#include <functional>
using namespace std;
typedef int (*http_cb) (int*);
struct http_parser_settings {
http_cb on_message_begin;
};
class HttpParser
{
int OnMessageBegin(int* val){}
HttpParser()
{
http_parser_settings settings;
//settings.on_message_begin = std::bind(&HttpParser::OnMessageBegin, this, std::placeholders::_1); -- this one does not compile
settings.on_message_begin = [](int* p){ return 0;};
}
};
int main() {
}