問題タブ [function-pointers]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - C ライブラリを Objective-C でラップする - 関数ポインタ
Objective-C で C ライブラリのラッパーを作成しています。このライブラリを使用すると、特定のイベントが発生したときにコールバック関数を登録できます。
register_callback_handler() 関数は、パラメーターの 1 つとして関数ポインターを取ります。
プログラミングの達人への私の質問は次のとおりです。Objective-C メソッド呼び出し/セレクターを関数ポインターとして表現するにはどうすればよいですか?
- NSInvocation は、この状況で役立つものでしょうか、それともレベルが高すぎますか?
- メソッド呼び出しが記述された C 関数を記述し、その関数へのポインタを渡す方がよいでしょうか?
どんな助けでも素晴らしいでしょう、ありがとう。
c++ - std::sin(const valarray を参照する方法&)?
valarray関数のポインター コードで問題が発生しています。
最初はコンパイルされ、2 番目は次のようになります。
c++ - boost::function::target を使用して関数ポインタを取得するときの null ポインタ
この回答を読んだ後、解決策があると思いました。少なくとも私がやりたいことはありますが、実装に問題があります。
ここに私がやろうとしていることの概要があります
プログラムはエラーや警告なしでコンパイルされますが、f.target(); から null ポインター (fpt) が返されます。実行時に。上記のスタックオーバーフローの質問にリンクされている参照から、ブーストがランタイム変換を実行できない場合、null ポインターが返されるようです。しかし、Boost がランタイム変換を実行できない理由がわかりません。何か案は?
c - Cで「プライベート/制限付き」機能を実装するには?
C のインタビューで非常に興味深い質問をされました。特定の g() 関数からのみ呼び出すことができるように、関数 f() をどのように実装できますか。g() 以外の関数が f() を呼び出そうとすると、コンパイラ エラーが発生します。
最初は、関数ポインターを使用してこれを実行できると思っていましたが、実行時に呼び出しをブロックすることに近づくことができました。しかし、コンパイル時の戦略を考えることができませんでした。ansi Cを使用してこれが可能かどうかさえわかりません。
誰にもアイデアはありますか?
c++ - ブーストバインド/機能のヘルプ
私はこの関数の署名を持っています私は一致しなければなりません
これが私がこれまでに持っているものです:
ただし、ではlua_register(_luaState...
、まだ変換の問題について不平を言っています
エラー1エラーC2664:'lua_pushcclosure':パラメーター2を'boost::function'から'lua_CFunction'に変換できません
誰もがこれを解決する方法を知っていますか?
c++ - list::sort の C++ カスタム比較関数
こんにちは、単純なコードのコンパイルに問題があります。カードのデッキを実装するクラスを作成しており、list::short メソッドを使用してシャッフル メソッドを作成したいと考えています。
関連コード:
デッキ.h
デッキ.cc:
コンパイラは次のメッセージを表示します (行番号は無視します)。
問題は、私が正しく使用していないcompareRandom参照にある必要があります。この問題に対する答えをグーグルで見つけることはできません。
前もって感謝します。
c++ - C /C++でのLua関数への参照
一連のテーブルに比較的深くネストされた関数があります。C / C ++で、その関数への「参照」を取得し、それを使用する必要があるときにそれ(および引数)をスタックにプッシュする方法はありますか?
c++ - C/C++ で raw ポインターと関数ポインターによってサポートされる操作は何ですか?
関数ポインタでサポートされているすべての操作は、生のポインタとは異なりますか? > 、 < 、 <= 、 >= 演算子は生のポインタでサポートされていますか? もしそうなら、その用途は何ですか?
c++ - 条件演算子は、オーバーロードされたメンバー関数ポインターを解決できません
C++ でオーバーロードされたメンバー関数へのポインターを処理する際に小さな問題があります。次のコードは正常にコンパイルされます。
しかし、これはコンパイルされません (コンパイラはオーバーロードがあいまいであると不平を言います):
おそらくこれは、コンパイラが条件演算子の戻り値を関数ポインタ型とは別に分類することに関係しているのでしょうか? 私はそれを回避することができますが、仕様がどのように機能することになっているのかを知りたいと思っています。 .
それが違いを生む場合、私はMSVC ++を使用しています。
ありがとう!
c++ - C++ メンバー関数ポインターと STL アルゴリズム
operator() をオーバーロードする抽象ファンクター クラスと、それを実装する派生オブジェクトがあります。
これらのファンクター クラスの配列を取り、メンバー関数へのポインターを std アルゴリズム for_each() に渡そうとする関数 (別のクラスの一部) があります。
編集:私はそれを再洗浄し、明確にするために古い小さな例を入れました。
いくつかの方法を試しましたが、それを機能させる方法がわかりません。異なる派生型を持つことができるため、抽象型を使用する必要がありますが、それらはすべて同じ operator()(param x を実装する必要があります) 関数。
メンバ関数 operator()(param x) を呼び出せるようにするには、for_each() 関数が必要です。具体的な実装があり、それらのインスタンスを渡すだけで機能する別の関数があります。ここで同様の効果を達成しようとしていますが、どの具体的なクラスが与えられているかを知りません。
私は何を間違っていますか?