問題タブ [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.
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 は、戻り値を持つグローバル関数のままにする必要があります (パラメーターに移動することはできません)。
c++ - std::result_of と decltype の違い
std::result_of
C++0x での必要性を理解するのに苦労しています。私が正しく理解していればresult_of
、特定のタイプのパラメーターを持つ関数オブジェクトを呼び出す結果のタイプを取得するために使用されます。例えば:
次のコードとの違いはよくわかりません。
また
これらの 2 つのソリューションで私が確認できる唯一の問題は、次のいずれかを行う必要があることです。
- decltype に渡される式で使用するファンクタのインスタンスを用意します。
- ファンクターの定義済みコンストラクターを知っている。
decltype
との唯一の違いresult_of
は、最初のものには式が必要であるのに対し、2 番目のものには必要がないということであると考えるのは正しいでしょうか?
c++ - 特定の配列型の添字演算子の戻り値の型をブーストで判別するにはどうすればよいですか?
ブーストを使用して配列 (T) の添え字演算子によって返される型を決定したい場合、どの型シグネチャを使用する必要がありますか? これを使用する配列には、typedef が含まれておらず、サードパーティであることに注意してください。
例。私はそれを決定したい:
何かのようなもの
? 型シグネチャの operator[] には常に問題がありました。:|
ありがとうございました!
visual-c++ - テンプレートラムダパラメーターの戻り値を取得します。コードを単純化する方法は?
これが私のトリックです:
使用例:
Fがラムダの場合:
関数get_return_valueは醜いように見えます...それを単純化する方法は?
c++ - result_ofが機能しません
両方のtypedefでエラーが発生します
c++ - std::result_of 単純関数
std::result_of<f(int)>::type x;
無効な理由を教えてください...
cppreference は、「( std::result_of
) コンパイル タイプで関数呼び出し式の戻り値の型を推測する」と述べています。
どうしたの?
c++ - c++エラーstd::result_ofはタイプを指定しません
g++ -std=c++0x
'ingの後std::result_of
、次のエラーメッセージが表示されます
(SUSE上のg ++バージョン4.5.0。)
エラーを再現するのに十分な関連するコードは以下のとおりです。
さらに、私はwikipediaまたはcpluplus.comから例をコンパイルしようとしましたが無駄になりました。それは特定のコンパイラに問題がありますか、それとも私は何か間違ったことをしていますか?
c++ - 基本的な強化精神のセマンティック アクションがコンパイルされない
大なり演算子を ast に追加しようとして>
います。コードはドキュメントのコードと 95% 同一です。
以下気になる2点
- 以下のコードでコメントされている「大なり」のサポートを記述しようとしているコードのブロック。
term
セマンティック アクションをまだ理解していないため、コンパイルに失敗する解析の 1 行:鳳凰とセマンティック アクションを介してlhs
ofをバインドする方法がわからない。lhs > rhs
この解決策は、Spirit の通常のユーザーにとっては些細なことですが、私はまだ学習中であり、これまでのところ例を通してしか理解できていません。
どんな助けでも大歓迎です。ティア。
コード
c++ - 関数パラメータ型の検出
次のコードを使用して、特定の関数への長い引数を検出しました。
したがって、与えられた:
抽出したいint *
。
これが私の試みです:
ただし、これは機能せず、gcc 4.6 でエラーが発生します
だから、私は2つの質問があります:
a) 上記のコードの何が問題になっていますか?
b) 他の方法でこれを行うことは可能ですか?
c++ - クラスメソッドの結果タイプ?
次の例を考えてみましょう。
によって返される型を取得する方法はありますT::operator[](unsigned int)
か?
現在、g++は次のように述べています。argument in position '1' is not a potential constant expression