問題タブ [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.
c++ - エラーC2955:'ListRemake':クラステンプレートの使用にはテンプレート引数リストが必要です
エラーC2955を出します:'ListRemake':クラステンプレートの使用にはテンプレート引数リストが必要です。
c++ - テンプレート機能の特殊化に関する説明
電卓を作りたい
ここで、このCaculatorに文字列を追加させたいので、add( "Tim"、 "Joe")は"TimJoe"を取得します。
既存のクラスに必要な変更を加えることでこれを実現するために、テンプレート関数の特殊化を使用できますか?
jquery - 独自のカスタム JQuery テンプレート エンジンを作成していますか?
私はstackoverflowで簡単に検索しました..しかし、私が求めていたものは何も見つかりませんでした。
jQuery 用の独自の非常に単純なテンプレート エンジンを構築する方法について、いくつかの指針を理解しようとしています。
私は基本的に、いくつかの XML を取得するための標準的な AJAX 呼び出しを持っています (はい、私が知っている昔ながらの..おそらくこれを JSON の世界に取り込む必要があります)。だから私は次のようなことを言うことになります(単なるアイデアの削減):
したがって、SINGLE ベースのレコードの場合、「PageDataMagic」と呼ぶものがあります (はい、非常に劇的です..)。これは、jQuery を使用して XML を反復処理し、xml ノード値を HTML 要素にマップします (もちろん、少しチェックがあります)。要素がチェックボックスなどの場合) - これは、XML ノードがデータベースからフィールド名と呼ばれることによって行われます / 要素の ID がそのように命名されている限り、機能します。
わかりました、ポイントに..何らかの「テンプレート」、つまりできれば外部JS / HTMLが必要な場合、フィールド名を動的にマッピングし、繰り返しテンプレートを動的に追加するにはどうすればよいですか? jQueryにappend()関数があると思いますか? テンプレートファイルを読み取って、その行インスタンスを作成しようとしていると思いますか???
それは意味がありますか?多分もっとコーヒーが必要です...
どんな助けでも大歓迎です...
デビッド。
- - 編集 - -
そうそう、今は他の制約のために XML でなければなりません.JSON に変換できれば、プロセス全体が間違いなく簡単になることはわかっています..しかし、解析する必要がある場合でも、XML から実行する必要があります。それは - 少し遅い..
c++ - テンプレート引数の推論(同じ呼び出しで明示的引数と暗黙的引数の両方を使用)
関数に対して3つのテンプレート引数があり、コンパイラがどのテンプレート引数がどれであるかを推測するのに問題があります(私は思います)。
テンプレート関数は次のとおりです。
そして、私がそれを呼ぼうとすると
テンプレート引数Pはcliques::DisjointSetForestに対応する必要があり、通常の関数引数はテンプレート化されたクラスと関数オブジェクトです。
これは失敗します
ただし、Pパラメーターにintやfloatなどの組み込み型を使用すると、すべてが正常にコンパイルされます。
例えば
だから私の質問は、私がここで何を間違っているのか、どのパラメーターがどれであるかをコンパイラーにもっとよく知らせるためにどのように使用できますか、または私は完全に軌道に乗っていないのですか?
c++ - スタックまたはキューのいずれかを受け入れることができる関数テンプレートを作成するにはどうすればよいですか?
私は、使用するデータ構造を除いて完全に同一の 4 つのアルゴリズムを実装しています — 2 つの use priority_queue
、1 つの uses stack
、および最後の uses queue
。それらは比較的長いので、コンテナーの型をテンプレート引数として受け入れる関数テンプレートを 1 つだけ用意し、次のように、各アルゴリズムが適切な引数を使用してそのテンプレートを呼び出すようにしたいと考えています。
priority_queue
- および -ベースの実装でこれを行うことができましたが、 -ベースのアルゴリズムでは別の名前を使用して最前の要素 (ではなく) にアクセスするためstack
、同じことはできません。このケースに合わせてテンプレートを特殊化できることはわかっていますが、重複したコードが大量に発生することになります (これは避けたいことです)。queue
front( )
top( )
これを達成するための最良の方法は何ですか? top( )
私の最初の本能は、と同等の操作を追加する queue のラッパー クラスを作成することでしたがstack
、STL クラスをサブクラス化することは禁止されていると読んでいます。では、どうすればこの動作を取得できますか?
c++ - テンプレート関数を使用した一貫性のないエラー
(この質問は、ショットを撮ることをいとわない人にとっては報奨金があります)
こんにちは、コンテナクラスを引数としてオーバーロードテンプレート関数を定義しました
(ここでは CntrlCls1 = RWTValOrderedVectorおよび CntrlCls2 = RWTPtrSortedVector )
定義した後、次のように関数を呼び出しています
ここで、ABC はCntrCls1<*>型のインスタンスです(つまり、ポインターのコンテナーです)。
現在、これは私のコンピューターでは正常にコンパイルされていますが、別のシステムでコンパイルすると、何らかの理由でコンパイラーが CntrlCls2 パラメーターを使用して関数テンプレートをインスタンス化しようとし、その結果、エラーが発生します。
CtrCls1 と CtrCls2 は無関係のコンテナーです。
更新: VS 2008 を使用して両方のシステムを構築しているので、問題にはなりません。
Update1: CtrCls2 パラメーターを使用して関数テンプレートをコメントアウトした後、再コンパイルしようとしましたが、コンパイルは最初の関数をインスタンス化しようとしています (つまり、ポインターなしで) :-(
c++ - コンパイル時に適切なオーバーロードされた関数テンプレートを選択する方法は?
コンパイル時に適切なオーバーロードされた関数テンプレートを選択する方法を理解しようとしていますが、コンパイラが苦労しています。動作させることはできますが、何が起こっているのかわかりません。説明させてください。
以下のような2つの構造体AとBがあります。1 つは特別な機能を持ち、もう 1 つは通常の機能を持っています。
私の意図は、特別な関数が利用可能かどうかに応じて、コンパイル時に適切なオーバーロードされた関数テンプレートを選択するメカニズムを持つことです。構造体をパラメーターとして受け取る 2 つの関数を実行して、適切な関数を呼び出すことができるようにします。
これを次のようにテストしましたが、さまざまな結果が得られました。
run(a)
余分な引数や <> なしで使用したいと思います。これが機能しない場合、コードに何か問題がありますか?
また、ここで何が起こっているのか、なぜこれがこのようなことを推測しているのかを理解したいと思って<A>
いA
ますB
。標準が何を言っているのか、これがコンパイラ間で異なるのかどうかはわかりませんが、少なくともLinuxではgcc4.4.4、Macではgcc 4.0.1が説明したように機能します。
誰かがこれに光を当てることができますか?ありがとう!
c++ - 列挙型と一致するテンプレート関数の C++ の説明のつかないバリエーション
テンプレート関数を含む次のコードがあります。2 番目のパラメーターが列挙型であるこの関数を呼び出すと、テンプレートの特殊化が検出される場合と検出されない場合があります。
両方の場合で列挙型が同じ列挙型であること (たとえば、再定義がないこと) と、他のパラメーターが正しい値であることを確認しました。1 つのコンパイルが -Winline セットで行われることがわかりました (まだ変更しようとはしませんでした)。見る?
c++ - 関数テンプレートの部分的な特殊化
以下のコードスニペットでは、
float以外のタイプを渡すと「all」が出力され、floatを渡すと「float」と出力されるテンプレートを変更したいと思います。テンプレートの特殊化は必要ありません。代わりに、入力タイプに基づいてそれに応じて動作する部分的な特殊化があります。どうすればいいですか。前もって感謝します。
さて、私が現在直面しているシナリオは、次のように定義する必要があります。
次の呼び出しは「t2」を出力する必要があります
次の呼び出しは「t1」を出力する必要があります
上記のようなある種のグループ化では、部分的な特殊化の実装を呼び出す必要があり、デフォルトの実装を呼び出す必要があります。
c++ - 関数テンプレートを部分的に特殊化できないのはなぜですか?
言語仕様が関数テンプレートの部分的な特殊化を禁止していることを私は知っています。
なぜそれが禁止されているのか、その理由を知りたいのですが?それらは役に立ちませんか?