this answerを調べているうちに、パラメータパックを取るテンプレートは、特定の数のパラメータを持つテンプレートを必要とするテンプレートでは受け入れられないことがわかりました。<typename...>テンプレートに一致していない<typename>に欠陥がありますか?
これは、テンプレートが任意の数のパラメータを取ることができる場合、特定の数にマップできる必要があるため、これは問題であると思われます。なぜこれが許されないのか説明できる言語弁護士はいますか?私はもちろん、この正確なシナリオでそれを使用することはありません
template <typename...Ts>
using pack = void;
template <template <typename> class>
using accept_template = int;
accept_template<pack> value = 0;
:ここ
は簡単な例です。これは、ある方法で渡されたテンプレートを使用する別のテンプレートにテンプレートを渡すために使用されます。リンクした私の答えで、私は回避策を述べましたが、私はまだこれが欠陥だと感じています。
便利な機能はありません。 – Adrian
@Adrianこの問題の例は、GCC 7.2でC++ 17モードで受け入れられています(使用するオプションがある場合)。 – hvd
これは欠陥として見つかったことを知りました。 :) – Adrian