問題タブ [template-function]

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

c++ - 特殊機能付引き離し機能タイプ

この質問への答えは、クラス テンプレートを使用して関数型を分離します。

ここで何が行われているかを調べたので、書き直そうとしましたfunction_argsdecltypeargsテンプレートの必要性をなくすために、関数を使用してこれを実行しようとしました。しかし、不適切な構文に陥っていることに気付きました。

私の希望は、 を呼び出すのではなく、型decltype(myTry<decltype(foo)>())を取得するために呼び出すことでした。関数宣言でこれを行う方法はありますか?tupledecltypeargs<decltype(foo)>

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

c++ - Variadic テンプレート関数がリンクしない

cmds.cpp には次のものがあります。

cmds.h には次のものがあります。

main.cpp には次のようなものがあります:

コンパイラは喜んでコンパイルします。ただし、リンカーは次のように述べています。

Makefile フラグ:

何が起こっている?

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

c++ - クラスのメンバー関数としてオーバーロードされた場合、逆参照演算子 (*) はどのように機能しますか?

演算子のオーバーロードに関する書籍やスタック オーバーフローの記事を調べたところ、次のことがわかりました。

オーバーロードされた演算子がメンバー関数の場合、これは左側のオペランドにバインドされます。メンバー演算子関数には、オペランドの数よりも 1 つ少ない (明示的な) パラメーターがあります。

(Addison Wesley、C++ 入門)

したがって、私の質問は、*(逆参照) 演算子には左オペランドがないため、どのようにしてそのパラメーター (オブジェクト自体またはthis) を取得するのですか?

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

c++ - C ファイルからのテンプレート関数の呼び出し

テンプレートが C で定義されていないことはわかっています。ただし、私の場合、C で記述されたアプリケーションで使用される C++ で記述された API があります。API にテンプレート関数を追加したいと考えています。この関数は、abc.cpp で次のように定義されています。

abc.hpp の宣言は次のとおりです。

この関数は xyz.c から次のように呼び出されます。

ただし、abc.cpp と abc.hpp の両方で次のエラーが表示されます。

extern "C" を使用しても役に立ちません (エラーにつながります: C リンケージを持つテンプレート)。私の疑問は、このテンプレート関数をそのような方法で呼び出すことさえ可能ですか? はいの場合、どうすればこれを達成できますか? ありがとうございました。

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

c++ - テンプレート クラス タイプ固有の関数

わかりましたので、このテンプレート クラスがあります。これは、一方向リストのようなものです。

そして、この内部関数 print があります

ご想像のとおり、リストの内容を最初から最後まで出力します。ただし、テンプレートは T としてクラスを取ることができるため、まさにその場合に Print() の異なる実装が必要になることが想像できます。たとえば、別のクラス Point があります

だから私はポイントのために特別に設計されたプリントが欲しい. 私はこれを試しました:

しかし、コンパイラは私に教えてくれます

けれど

私にとっては、同じ機能のようです。どうしたの?また、T 固有のテンプレート クラス関数をどのように記述すればよいでしょうか。

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

c++ - c++で2つのイテレータを取るテンプレート関数を定義する方法は?

1 つは begin() で、もう 1 つは end() である 2 つの反復子を取るテンプレート関数を定義したいと思います。これはC ++でどのように達成できますか?

これまでのところ、次のことが考えられます。

これは間違っていますか?

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

friend-function - テンプレート クラスのフレンド テンプレート関数を定義する方法

array_T汎用配列であるテンプレートクラスとテンプレート関数linear search TEMPLATE.hがあり、クラスのフレンドとして宣言されているため、クラスのメンバー関数と動的割り当て配列であるクラスのデータメンバーarrayTemplate.h を使用できますgetArraySize()a

arrayTemplate.h

線形検索 TEMPLATE.h

main.cpp

これらは私が得たエラーです

線形検索 template.h(8): エラー C2065: 'array_T': 宣言されていない識別子

線形検索 template.h(8): エラー C2065: 'オブジェクト': 宣言されていない識別子

線形検索 template.h(8): エラー C2275: 'T': この型を式として不正に使用しています

線形検索 template.h(6): 注: 'T' の宣言を参照してください

線形検索 template.h(8): エラー C2146: 構文エラー: 識別子 'desiredData' の前に ')' がありません

main.cpp(14): エラー C2660: 'linearSearch': 関数は 2 つの引数を取りません

========== ビルド: 0 成功、1 失敗、0 最新、0 スキップ ==========