2012-12-13 32 views
1

我有使用可变参数模板的代码,我试图理解放置省略号的位置。在下面的代码中,我将它们放在模板参数列表的处,如错误所示。但我仍然有错误。我究竟做错了什么?为什么我得到的错误“参数包'F'必须在模板参数列表末尾”

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

回答

3

你有另一个参数,T,在列表F后结束。如错误信息所示,可变包装必须在最后出现。不幸的是,这使得在同一个模板中同时具有可变参数和默认参数变得很尴尬。

+0

谢谢。简单的错误。 – 0x499602D2

相关问题