問題タブ [pointer-to-member]

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.

0 投票する
1 に答える
670 参照

c++ - ポインタからメンバへのクラス テンプレート推定

クラス テンプレート パラメーターの 1 つとして、メンバーへのポインターを使用する必要があります。

これは次のように使用する必要があります

しかし、私はこれを次のように使用したい:

メンバー型は、メンバー ポインターから推定されます。クラスはインスタンス化されていないため、関数テンプレートを使用できませんMemPtrTest(使用される静的関数がいくつかあります)。純粋な C++03 (Boost または TR1 なし) でそれを行う方法はありますか?

0 投票する
1 に答える
609 参照

c++ - テンプレート引数とメンバーへのポインタを推測できませんでした

Visual C ++でC2783エラーが発生しました(テンプレート引数を推測できませんでした)。次のテストケースがあります。

行にコメントするとき

次の行のコメントを外すと、コードがコンパイルされます。

私にとって「helper::add」の2番目の引数はまだ同じなので、理由はわかりません...

手伝ってくれてありがとう。

0 投票する
2 に答える
207 参照

c++ - テンプレートパラメータとしてメンバー関数を使用する場合のc++コンパイルエラー

メンバー関数ポインターをテンプレートパラメーターとして渡そうとしています。コードは次のとおりです。

そして、これは私が得ているエラーです:

私の知る限り、メンバー関数へのポインターは有効なテンプレートパラメーターです。前のコードの何が問題なのかわかりません。私が使用しているコンパイラは、Ubuntuではg++4.5.2です。

前もって感謝します。

アップデート:

mptr実行時変数と同様に、コードが間違っているようです。一方、前のコードの抜粋は次のようにコンパイルされます。

http://ideone.com/cv8pq

だから...それは正しいですか?コンパイラに依存しますか?

0 投票する
3 に答える
2807 参照

c++ - クラス内の関数ポインタへのアクセス

クラス内で関数ポインタを定義し、クラスのインスタンスを介してアクセスしようとしていますが、エラーが表示されます。

コードは次のとおりです。

コンパイル時エラーが表示されます:

私を助けてください。

前もって感謝します。

0 投票する
6 に答える
6308 参照

c++ - 特定のインスタンスでメソッドを呼び出す関数ポインターを動的に作成する

これは無理だと思いますが、聞いてみようと思いました。メソッドを持つクラスがあるとします。

そのメンバー関数へのポインターを作成できます。

関数ポインターを悪用して、A引数を直接受け取るポインターを作成することもできます (これが安全かどうかはわかりませんが、私のマシンでは動作します)。

私が望むのは、どうにかしてA引数をカリー化し、 だけを受け取るが、定義済みの特定のインスタンスでメソッドをint呼び出す関数ポインターを作成することです。インスタンスはその特定の関数ポインターに対して一定のままですが、すべて同じメソッドを指しているが異なるインスタンスを使用しているいくつかの関数ポインターが存在する場合があります。たとえば、別のラッパー関数を作成できます。A::bAAA::bA

これで、呼び出しをディスパッチするptr3特定のものを知らなくても使用できますが、それを処理する特別な関数を定義する必要がありました。任意の数のインスタンスAのポインターを作成する方法が必要なので、そのようにハードコードすることはできません。Aこれは何らかの形で可能ですか?


編集:言及する必要がありましたが、私はC ++ 03の土地に閉じ込められており、Boostも使用できません

0 投票する
3 に答える
1260 参照

c++ - データメンバーへのポインタに特化したテンプレートメンバー関数

データメンバーへのポインタに(明示的に)特化され、特殊化ごとに異なる戻り型を持つことができるnullary静的テンプレートメンバー関数を定義したいと思います。

各属性に関する詳細情報が返されるはずなので、このメソッドを呼び出しますtrait。返されるトレイトオブジェクトタイプは他のテンプレートによって検査されるため、この機械全体がコンパイル時に使用可能である必要があります。

これまでのところ、私はこのようなものを持っています(もちろん壊れたコード):

これを達成する方法についていくつかのヒントを得ることができますか?(私は新しいシリアル化システムを発明しようとはしていません。私はすでにboost :: serializationを使用しています。各特性にはより多くの情報があります。これは、コンパイル時に必要になる理由の単なる例です)。

編集:私は私が欲しいものに近い何かを得ることができました、それはideone.comで示されていますtrait<Foo::a>()私は(今のところ)持っていることをあきらめたのでgetTrait_a()、変更可能な型特性への参照を返す静的関数がありますが、コンパイル時に部分的に修正されます(たとえば、それはFoo::TraitType_a::flags機能します)。返信してくださった皆様のおかげで、残念ながら「答え」としては1つしか選べません。

0 投票する
1 に答える
361 参照

c++ - テンプレート クラス、継承、およびメンバー関数へのポインターに関するコンパイラ エラー

このエラーを克服する方法はありますか。フィラー関数を渡し、重複コードのコード臭を避けたい。

0 投票する
4 に答える
15240 参照

c++ - C++でメンバー関数アドレスを出力する方法

std::coutたとえば、メンバー関数のアドレスを出力できないようです。

結果は次のようになります。

MyFuncを使用してのアドレスを印刷するにはどうすればよいstd::coutですか?

0 投票する
1 に答える
4127 参照

c++ - テンプレート パラメーター推定としてのメンバーへのポインター

foo1 へのテンプレート パラメーターとしてメンバーへのポインターを取得します。コードは次のとおりです。

それで、それはどのように見えるべきですか?

0 投票する
2 に答える
2083 参照

c# - メンバーへのC++ポインターをC#に変換する

C++ のポインターからメンバーへの変換を C# に正常に変換する方法を研究してきましたが、まだ有用なものは見つかりませんでした。私がこの機能を持っているとしましょう。

->* はメンバーへのポインターであることを調査を通じて学びました。この場合、STRUCT という構造体でメンバ変数のポインタを送信します。Method はどのメンバーがパラメーターとして送信されたかを実際には把握していないため、メンバーへのポインター sampleStruct->*pMember を介してアクセスします。

リフレクションは、このコードを C# やデリゲートに変換するのに役立つと思いますが、実装方法が本当にわからず、同様の例をオンラインで見つけていません。どんな助けでも大歓迎です。

ありがとう、YT

アップデート

これは、C# でこれを実装した方法です。

構造体の代わりに、次のように列挙型と C++ 構造体を表すクラスを作成しました。

C++ 構造体

さて、C# では:

}

これで、次のように特定の列挙型を呼び出すことで、配列の要素にアクセスできます。

コードは増えますが、C# でネイティブに動作し、他のソリューションよりも効率的です。