2.3.0ご指摘、ご助言をよろしくお願いいたします。【ご回答を頂いて】C++初心者として同じ初心者プログラマの方々のために残しておきたいと思います。この問題への解決にはC言語の「関数ポインタ」とC++言語の「メンバ関数ポインタ」の関数構造の違いを理解する必要がありました。この違いについて初心者の私が説明するより(と、言うよりできない...)「c言語の関数ポインタとメンバ関数ポインタの違い」で検索すると詳細に説明又は応用解決に向けたサイトがたくさん出てきます。初心者は問題解決に繋げる為のキーワードがわからない(又は連想できない)ので壁にぶつかって足踏みしてしまいます。そんな時、stackoverflowの皆さんのアドバイスで解決への方向が見いだせるのです。そんなstackoverflowで回答を寄せられている皆さんをいつも尊敬のまなざしで見ています。早く初心者を脱して他の皆さんのお役に立てるように精進したいと思います。(まだまだ遠い...)774RRさん、Hidekiさんありがとうございます。変更できないのだとこの手法は取れません。互換な通常関数(非メンバ関数)とはアセンブラレベルで呼び出し手続きが非互換です。取らないので通常関数と呼び出し手続きが互換ということになります。通常関数へのポインタ型なので、これでクラスの非静的メンバ関数を指し示すことはできません。リストを保持しておく必要がありますね。非静的メンバ関数へのポインタをセットで管理してくれてとても楽。後発言語と言うところでしょう。足らないところを補完してくれています。個の銅バッジ774RRさん、ご回答ありがとうございます。ライブラリ側は変更できませんんおでthiを自前で管理しまいといけないのですね。参考になりました、ありがとうございます。|1残念ながら無理だと思います。std::bindで作った関数は、普通の関数と呼び出し方は同じですが、内部構造が全然違うので、関数ポインタにすることができません。ラムダ関数は、変数のキャプチャをしなければ普通の関数として使えます。キャプチャしてしまうと、やはり普通の関数でなくなってしまうので、esp_now_register_send_cbに渡せなくなってしまいます。cb);のようにすることですが、外部の関数だとすると、そもそも変更できないでしょう。独立したコールバック関数を作り、そこでいったんコールバックを受け取り、そこから登録したオブジェクトのメンバ関数を呼び出すようにしたら、どうでしょうか。個の銅バッジHidekiさん、ご回答ありがとうございます。std::bindで作った関数は、内部構造が違うので渡せなかったのですね、勉強になります。ご回答にあるように独立したコールバック関数を作りそこにthisを持たせるようにしてみようと思います。ありがとうございました。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。friend関数とfriendクラスの違いを知りたいです。0ヘルパー関数について。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。