1

可変個引数テンプレートを使用するコードがあり、省略記号を配置する場所を理解しようとしています。以下のコードでは、エラーが示すように、テンプレート パラメーター リストの最後に配置しています。しかし、私はまだエラーが発生します。私は何を間違っていますか?

template <typename T> struct S {

    void operator << (const T &) {}

};

template <template <typename, typename...> class ... F, typename T = int>
struct N : S<F<T>> ... {};

prog.cpp:10:82: error: parameter pack 'F' must be at the end of the template parameter list

4

1 に答える 1

3

Tの後のリストの最後に、別のパラメーター がありますF。エラーメッセージが示すように、可変個パックは最後に来る必要があります。残念ながら、可変引数とデフォルトのパラメータの両方を同じテンプレートに含めるのは厄介です。

于 2012-12-13T19:59:45.277 に答える