問題タブ [result-of]

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 に答える
2054 参照

c++ - 「関数への非型ポインター」クラス テンプレート パラメーターの C++ 演繹

次のようなテンプレート クラスを考えてみましょう。

これは、次を使用してインスタンス化できます。

しかし、戻り値の型を明示的に宣言する必要はないようです。私が達成しようとしているのは次のようなものです:

残念ながら、私は C++ を期待していません。これは言語の隠れたコーナーのように思えます (少なくとも私にとっては)。

関数へのポインターからその型を取得できた場合 - std::tr1::result_of<&fn>::type // エラー 1 エラー C2923: 'std::tr1::result_of' : 'fn1 ' は、パラメーター '_Fty' の有効なテンプレート タイプ引数ではありません

パラメータはまったく「タイプ」ではないため、エラーは理にかなっています

C++0x には decltype(&fn1) がありますが、それは何年も先のことです。

C++03 (+ tr1) でこれを行う方法はありますか?

制限: - ファンクターを渡したくありません。f1 と f2 は、戻り値を持つグローバル関数のままにする必要があります (パラメーターに移動することはできません)。

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

c++ - std::result_of と decltype の違い

std::result_ofC++0x での必要性を理解するのに苦労しています。私が正しく理解していればresult_of、特定のタイプのパラメーターを持つ関数オブジェクトを呼び出す結果のタイプを取得するために使用されます。例えば:

次のコードとの違いはよくわかりません。

また

これらの 2 つのソリューションで私が確認できる唯一の問題は、次のいずれかを行う必要があることです。

  • decltype に渡される式で使用するファンクタのインスタンスを用意します。
  • ファンクターの定義済みコンストラクターを知っている。

decltypeとの唯一の違いresult_ofは、最初のものには式が必要であるのに対し、2 番目のものには必要がないということであると考えるのは正しいでしょうか?

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

c++ - 特定の配列型の添字演算子の戻り値の型をブーストで判別するにはどうすればよいですか?

ブーストを使用して配列 (T) の添え字演算子によって返される型を決定したい場合、どの型シグネチャを使用する必要がありますか? これを使用する配列には、typedef が含まれておらず、サードパーティであることに注意してください。

例。私はそれを決定したい:

何かのようなもの

? 型シグネチャの operator[] には常に問題がありました。:|

ありがとうございました!

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

visual-c++ - テンプレートラムダパラメーターの戻り値を取得します。コードを単純化する方法は?

これが私のトリックです:

使用例:

Fがラムダの場合:

関数get_return_valueは醜いように見えます...それを単純化する方法は?

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

c++ - result_ofが機能しません

両方のtypedefでエラーが発生します

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

c++ - std::result_of 単純関数

std::result_of<f(int)>::type x;無効な理由を教えてください...

cppreference は、「( std::result_of) コンパイル タイプで関数呼び出し式の戻り値の型を推測する」と述べています。

どうしたの?

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

c++ - c++エラーstd::result_ofはタイプを指定しません

g++ -std=c++0x'ingの後std::result_of、次のエラーメッセージが表示されます

(SUSE上のg ++​​バージョン4.5.0。)

エラーを再現するのに十分な関連するコードは以下のとおりです。

さらに、私はwikipediaまたはcpluplus.comから例をコンパイルしようとしましたが無駄になりました。それは特定のコンパイラに問題がありますか、それとも私は何か間違ったことをしていますか?

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

c++ - 基本的な強化精神のセマンティック アクションがコンパイルされない

大なり演算子を ast に追加しようとして>います。コードはドキュメントのコードと 95% 同一です。

以下気になる2点

  • 以下のコードでコメントされている「大なり」のサポートを記述しようとしているコードのブロック。
  • termセマンティック アクションをまだ理解していないため、コンパイルに失敗する解析の 1 行:鳳凰とセマンティック アクションを介してlhsofをバインドする方法がわからない。lhs > rhs

この解決策は、Spirit の通常のユーザーにとっては些細なことですが、私はまだ学習中であり、これまでのところ例を通してしか理解できていません。

どんな助けでも大歓迎です。ティア。

コード

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

c++ - 関数パラメータ型の検出

次のコードを使用して、特定の関数への長い引数を検出しました。

したがって、与えられた:

抽出したいint *

これが私の試みです:

ただし、これは機能せず、gcc 4.6 でエラーが発生します

だから、私は2つの質問があります:

a) 上記のコードの何が問題になっていますか?

b) 他の方法でこれを行うことは可能ですか?

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

c++ - クラスメソッドの結果タイプ?

次の例を考えてみましょう。

によって返される型を取得する方法はありますT::operator[](unsigned int)か?

現在、g++は次のように述べています。argument in position '1' is not a potential constant expression