問題タブ [function-templates]

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 投票する
2 に答える
67 参照

c++ - method-template 内の構文の意味

次のコードについて 2 つの質問があります。

  1. 行 211 ~ 213: 表示されるメソッドflux(...)は、戻り値の型が であるメソッド テンプレートである必要がありlimitedSurfaceInterpolationScheme<Type>ます。tmp<GeometricField<Type, fvsPatchField, surfaceMesh> >これに関連して、正確にはどういう意味ですか?

  2. 218 行目: 何をしfaceFlux_*thisますか? faceFlux_class-template の member-object でありlimitedSurfaceInterpolationScheme<Type>、呼び出され*thisたオブジェクト メソッドのコンテンツです。flux(...)

あいさつ

0 投票する
0 に答える
192 参照

templates - c ++ 11をサポートするためのVS2012とVS2013の周りの#ifdefのベストプラクティス?

VS のバージョンに基づいていくつかの関数宣言を切り替える良い/最良の方法は何ですか?

コンテキスト: Linux と Windows でビルドする必要があり、GCC は正常にコンパイルされるが、VS2012 には c++11 の機能がいくつか欠けているケースに引き続き対応する必要があります。サポートされていない構文を #ifdef して、Linux で今すぐ使用し、後で VS2013 サポートのために簡単に有効にできるようにしたいと思います。

デフォルトの関数テンプレート パラメーターのような機能は、vs2013 に適していると思われます: http://blogs.msdn.com/b/vcblog/archive/2013/06/27/what-s-new-for-visual-c-developers-in- vs2013-preview.aspx

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

c++ - 関数テンプレートを別の関数テンプレートでオーバーロードすることは合法ですか?

両方がテンプレート化されている、オーバーロードされたメソッドを作成しようとしています。1つは4つの引数を取り、もう1つは5つの引数を取ります。ただし、次の行に沿ってエラーが発生します

4引数のメソッド定義の行を参照する

この場合、5 つの引数でオーバーロードを呼び出そうとしているので、4 つの引数しかとらない関数を呼び出す必要があるとコンパイラが判断する理由がわかりません。

完全なコンテキストは複雑すぎて完全なコード例を示すことはできませんが、これはすべて、、 、 などtypedefを含む多くのローカル sを持つクラス テンプレート内で行われると言えば十分です。これらはすべて、テンプレート引数の型定義のいずれかです。 POD タイプ、またはこれらの POD タイプのいずれかを保持するsamp_typeconst_sampsamp_vecstd::array

私が正しく理解していれば、テンプレート関数を呼び出すときに、コンパイラが関数の引数から推測できるテンプレート パラメーターを提供する必要がないため、呼び出しは次のようになります。

では、これらのテンプレート メソッドを呼び出す方法に何か問題がありますか? コンパイラがオーバーロードを解決することを期待している方法に何か問題がありますか?

編集

私はVS2010を使用しています。これまでのところ、テンプレートと C++11 データ型についてはかなりうまくいっています。私のコンパイラが標準以下で動作しているかどうかわからない

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

c++ - Visual Studio 2012 の既定のテンプレート パラメーター

この質問は、この質問の後のフォローアップです。実際の問題は、このリストで示されているように、関数テンプレートの既定のテンプレート パラメーターがVisual Studio 2012 でサポートされていないことです。


既定のテンプレート パラメーターは Visual Studios 2012 でサポートされていないため、それなしで同じ結果を得るための回避策はありますか? したがって、次のようなテンプレート関数を定義することは可能ですか?

デフォルトのテンプレート引数を使用せずに? 関数は次のように機能します

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

c++ - C++ エラー: 関数テンプレートのインスタンスがありません

c++ を使用して config.lua ファイルから変数を取得しようとしています。これらの変数を取得するためにチュートリアルから Lua クラスを作成しましたが、config.lua から変数を取得する関数を呼び出そうとするとエラーが発生します。

コードスニペットは次のとおりです。

「script.get(string("test));」を呼び出した時点で、「関数テンプレートのインスタンスが引数リストと一致しません」というエラーが表示されます。

テンプレート関数と特殊化は次のようになります。

専門:

詳細については、Visual Studio 2012 でコーディングおよびコンパイルしています。

ご協力いただきありがとうございます :)

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

c++ - アイテム機能テンプレートの検索で問題が発生する

範囲内のアイテムを見つけようとしているので、「検索」と呼ばれるテンプレート化された関数に対して複数のテストがあります。

これは、私が使用している関数プロトタイプであり、最初のテストでは機能しません。

@ const int *pos "エラー: 関数テンプレート "find" のインスタンスが一致しません 引数リストの引数の型は (const int [11], const int *, const int) と一致します"

このテストで動作する 2 つ目のプロトタイプがありますが、完全にテンプレート化されていないため、const int *pos ではなく int *pos を要求する 2 つ目のテストに失敗します。

2 番目のプロトタイプ:

どのような場合でも最初の関数をテンプレート化する方法がよくわかりません。

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

c++ - 未知の関数テンプレート パラメータ

基本的に Windows API をフックし、パラメーターと結果を記録するアプリケーション プロファイリング ライブラリを作成しています。私は、C++ テンプレートを使用してこれらのフックを生成し、新しいフックを追加する労力を最小限に抑える方法を考え出そうとしています。基本的に、私の各フックは次のようになります。

テンプレートを介してそれを一般化したいので、これらの関数は任意の Windows API 関数に対して生成できdecltypeますdecltype(CreateFileW)。これは可能ですか?私はfunction_traitsブーストで見てきましたが、近いものを思いつくことができるようです:

WhereHookは、「実際の」関数をフックされたバージョンに置き換えるフック ライブラリによって提供されます。

CloseHandle唯一のことは、現在関数内にあるそのテンプレート引数を削除する方法がわからないということですcall。何か案は?