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

c++ - C ++ 03で可変個引数テンプレートをエミュレートするときに、クラスに異なるコードを含めることはできますか?

テンプレートの引数に応じて異なるコードでクラスを埋めようとしていますが、コンパイルエラーが発生します。私のコードは次のようなものです:

たくさんのエラーが発生します:

ここにライブコード。だから私は疑問に思います:C ++ 03で可変個引数テンプレートをエミュレートするときにクラス内に異なるコードを持つことは可能ですか?

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

c++ - gcc 4.4 でのテンプレート テンプレート パラメーターと可変個引数テンプレート

Debian スクイーズで gcc 4.4 を使用しています。次のコードを検討してください。

したがって、ここでの考え方は、Tmatches stringCmatches map、およびテンプレート パラメーター パックのArgsmatchesintです。構文の一部が間違っている可能性があります。その場合は修正してください。特に、最初のテンプレート引数class Cを一致Tさせ、残りをテンプレート パラメータ pack と一致させたい場合、構文は正しいですかArgs?template <typename T, typename... Args> class C

これにより、エラーが発生します

これは、質問Variadic template templates and perfect forwardingに似ているようです。その質問は、これが gcc のバグであることを示唆していますが、これらの質問が同じことであると誤解している可能性があります。

優しくしてください。可変個引数テンプレートに関する私の知識は、12 時間も経っていません。重複を減らすために、いくつかの古い C++ コードを書き直そうとしていました。私がC++をやったのも久しぶりです。回避策がある場合は、お知らせください。ありがとう。

編集: Variadic テンプレート テンプレートのコメントで提案された回避策と、Ise Wisteriaによる完全な転送がうまくいきました。これは、これが同じバグであることを示唆しています。もちろん、私は今、(a) この回避策がどれほど壊れやすいか、(b) なぜ機能するのか、伊勢がそれを考えた動機は何なのか、疑問に思っています。伊勢しか答えられないんだろうけど。:-)

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

c++ - 可変個引数テンプレートテンプレートの引数

次のコードはclang3.0を使用してコンパイルされませんが、これは間違って行ったためですか?c ++ 11では許可されていないため、またはclangでサポートされていないためですか?

コンパイラエラー:

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

c++ - 可変個引数テンプレートの連鎖

XC++11 可変個引数テンプレートを使用するように変換され、任意の数のテンプレート引数をサポートする必要がある場合、次のコードはどのようになりますか?

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

c++ - 可変個引数テンプレートクラスの(単純な)コンストラクター

コンストラクターとコピーコンストラクターは、この可変個引数テンプレートクラスをどのように検索しますか?

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

c++ - 可変個引数テンプレートの引数を逆の順序で繰り返す

次のコードは、渡されるテンプレート引数の順序を手動で逆にすると機能します。

例:

私はここでこれを修正しようとしました:

例:

しかし、これはコンパイルエラーで終わります:

私は何を間違えましたか、そしてそれらは逆の順序で操作のように折りたたむためのより簡単な方法ですか?

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

c++ - C ++ 11で型パラメーターパックの後に整数値パラメーターパックを使用できないのはなぜですか?

この質問は、例がなければほとんど意味がありません。これが私がやろうとしていることです。

一般に、C++では次のことが可能です。

しかし、その自然な可変個引数拡張は機能しないようです。

clangとg++4.7はどちらも、上記のコードを拒否します。インスタンス化が行われる場所にエラーが表示されます。最初のリストには型があり、もう一方には整数値しかないため、2つの可変個引数リストを明確に解析する必要があるように思われます。

上記がうまくいかない場合は、以下もうまくいかないと思います。

Fooテンプレートはかなり便利なものだと思います。

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

c++ - 囲んでいるテンプレート パラメーターに応じたネストされたテンプレートの特殊化

gcc 4.5+ ではコンパイルできますが、clang 3.1 や icc ではコンパイルできず、どちらもsizeof...(Indices). 後者のコンパイラでまだ実装されていない機能ですか、それとも特別なケースですか?

ありがとう、

ブオテ

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

c++ - 可変個引数テンプレートを使用した「呼び出しに一致する関数がありません」

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

c++ - ネストされた可変個引数テンプレート: gcc または clang のバグ?

次のコードは gcc 4.7 (20120114) ではコンパイルされませんが、clang++ 3.0 では正常にコンパイルされます。これはgcc、clangのバグですか、それとも私がやろうとしていることがc ++ 11では許可されていないからですか?

上記のコードは、私がやろうとしていることの非常に単純化された例ですが、本質は、関数の戻り値の型を計算するために args... 型と tags... 型の両方が必要だということです。これはどのように行うことができますか?