問題タブ [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 投票する
2 に答える
116 参照

c++ - 関数テンプレートを別の関数に渡すときの過負荷解決

私は次のコードを持っています:

の過負荷解決はfoo、を渡すときに正しく機能しbazます。ただし、関数テンプレートを渡す場合、スコープにテンプレート引数が1つしかない場合でも、コンパイラはのテンプレート引数をbar推測できず、最初の引数は完全にに解決されます。のような呼び出しをコンパイラで解決できるように関数テンプレートを作成するにはどうすればよいですか?T0foobarintfoofoo(bar, 10)

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

c++ - 次のテンプレート関数の意味は?

上記のコードをレガシーコードで見ましたが、その意味がわかりません。これは、通常の特殊化されていない関数定義でも、完全に特殊化された関数定義でもありません。

何か案が?

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

c++ - そのテンプレート関数がコンパイルされないのはなぜですか?

これは非常に短いスニペットで、g++ 4.7.1 ではコンパイルされません (ちなみに gcc 4.6.3 でもコンパイルされません)。

そして、これが gcc 4.7.1 の出力です (4.6.3 はほぼ同じことを言っています)。

/tmp/ccNWJW6X.o: 関数main': main.cpp:(.text+0x15): undefined reference to内 std::basic_ostream >& operator<< (Foo&, char const (&) [4])' collect2: ld が 1 つの終了ステータスを返しました

誰でも理由を説明できますか?

編集

私もclang 3.1で試しましたが、まったく同じことが言えます。

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

c++ - テンプレートでタイプのデストラクタを呼び出す方法は?

たとえば、次のような関数があります。

andのようなコンストラクタとデストラクタを呼び出すことはできません(今は真実ではありません)(Whyy?= Cobject.Type()object.~Type()

コンストラクターを呼び出すには、が好きnew(&object) TYPE()です。そして、デストラクタを呼び出す方法がわかりません(配置は存在しませんdelete)。これを行う方法?

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

c++ - 存在しないメンバーを使用しているにもかかわらず、プログラムをコンパイルする

このプログラムは (残りのプログラムと共に) コンパイルされますが、2 行のnode *toFollow = l->yhjfrtydfg;node *whatever = l.asfqwejfq3fqh23f8hq23r1h23017823r087q1hef;は明らかにクレイジーな入力です。他のエラーがキャッチされるので、それは奇妙です。何か助けはありますか?

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

c++ - 自分の出力ストリームクラスが機能しないのはなぜですか?

重複の可能性:
演算子をオーバーロードするときにstd::endlのタイプが不明です<<

VC++2012コンパイラは次のように文句を言います。

エラーC2676:バイナリ'<<':'OutputStream'は、この演算子または事前定義された演算子に受け入れられる型への変換を定義していません

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

c++ - 関数宣言でのテンプレートキーワードの意味

「関数宣言でのテンプレートキーワードの使用」とはどういう意味ですか?

この例では、コンパイラエラーでエラーが発生します:「func」はテンプレート関数ではありません。

しかし、以下の例は問題ありません。

上記の場合の「テンプレート」の意味は何ですか?この関数がテンプレート関数であることを示しているだけですか?

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

c++ - テンプレート クラスのネストされた型をテンプレート パラメーターとして使用する

テンプレート クラスのネストされた型を使用してテンプレート関数を実装したいと考えています。

ここで、非メンバーおよび非フレンド関数として実装する方が良いことを読みました。operator <<したがって、関数toStream()tableToStream()外部を移動することにしましたMyClass:

非メンバーおよび非フレンド関数に変換MyClass::toStream()するのは簡単です。operator <<

operator <<しかし、私は呼び出す代わりに単独で使用したいMyClass::tableToStream():

関数についてはMyClass::tableToStream()、次の実装を使用できますが、関数が一般的すぎるため、ストリーム出力が混乱する可能性があります (任意の型を にすることができますTABLE)。

したがって、ネストされた型に制限したいと思いMyClassます。MyClass::tableToStream()以下は、標準operator <<の非メンバーおよび非フレンド関数に変換する私の試みの1つです。

しかし、エラーは約typename MyClass<T>::TABLEです。

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

c++ - テンプレート関数呼び出しによる C++ の未解決の extern シンボル

関数を呼び出さない限り、すべて問題ありませんが、関数を呼び出すと、未解決の外部シンボルが取得されます。私のクラスはすべて SSE 名前空間 (私自身) にあり、今まで正常に動作していました。私に見せてください。

ここで関数を呼び出します。Game は、私にとって舞台裏の作業を実行するクラスです (そのクラスではすべて問題ありません)。Game.Objects() は、オブジェクトの作成と削除、およびオブジェクトへのコンポーネントの提供を担当するゲームの ObjectManager を返します。ObjectCreate は、作成された新しいオブジェクトへのポインターを返すテンプレート関数です。

ObjectManager の .cpp ファイルから:

これにより、新しいゲームオブジェクトに一意の名前が割り当てられ、メモリに作成され、ベクターに格納されます。言及すべきもう1つのことは、これと同様のObjectManagerおよびGameObject関数の多くでこの未解決の外部シンボルエラーが発生していることですが、コードでそれらを呼び出す場合にのみ同じです.

参考までに、エラーは次のとおりです: Error 2 error LNK2019: unresolved external symbol "public: class SSE::GameObject * __thiscall SSE::ObjectManager::ObjectCreate(void)" (??$ObjectCreate@VGameObject@SSE@@@ObjectManager @SSE@@QAEPAVGameObject@1@XZ) 関数 _SDL_main で参照 C:\SDL\SimpleStateEngine\SSE\main.obj SSE

他に何か必要なことがあれば教えてください。何時間も探しています。

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

c++ - テンプレート化されたメンバー関数は、どのタイプの引数も受け入れませんか?

私は次のクラスを持っています:

ただし、AddParameter を使用しようとすると、関数のオーバーロードが引数リストに一致しないと表示されます。あらゆる種類の可能な組み合わせを試しました。たとえば:

だから私はこのようにそれを使用します:

そして、これは機能しません.Intellisenseは、それが引数リストと一致しないことを教えてくれます.興味のある方は、AddParameter が行うことは、typeValue の値を取得し、パラメーター システム内のマップ内の void ポインターに設定し、その値のマップ キーをパラメーターの ID と同期し、パラメーターにもハンドルがあることです。それは親パラメーターシステムなので、IDとタイプチェック+タイプキャストから、IDに応答するシステムのパラメーター値を常に取得できますが、それは私が思う質問には関係ありません...)